lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009
-
8 janv. 2005 à 22:42
cs_Tux
Messages postés6Date d'inscriptionsamedi 4 mai 2002StatutMembreDernière intervention 3 avril 2005
-
9 janv. 2005 à 12:24
j'ai fait une application ou 2 client se connect à un server . j'ai 3 machine :la A server B et C sont client
les 2 clients se connectent sans problèmes au serveur.j'aimerai en faite que si B envois une donné vers le server celuici reconnaisse que c'est B et achemine cell ci vers C et si c'est C qui l'envois A renvois vers B.
1-pour cela je me demande si la fonction recv() reçoit l'ip de l'envoyeur et si c'est le cas comment lire après koi comment alors donner l'IP de destination lors de l'envois vers une autre machine.
2-la fonction recv() à tandance à bloquer tout ce qui fait que je ne peux rien faire quand mon server attend un paquet.
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 9 janv. 2005 à 00:40
1) il me semble que toutes les infos sur la connection se trouve dans la structure SOCKADDR_IN. c'est confirmer, voila la structure d'un SOCKADDR_IN trouvé sur la MSDN:
In the Internet address family, the SOCKADDR_IN structure is used by Windows Sockets to specify a local or remote endpoint address to which to connect a socket.
struct sockaddr_in{ short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8]; };
Parameters
* sin_family : Address family (must be AF_INET).
* sin_port : IP port.
* sin_addr : IP address.
* sin_zero : <DD>Padding to make structure the same size as SOCKADDR.
Remarks
This is the form of the SOCKADDR structure specific to the Internet address family and can be cast to SOCKADDR.
The IP address component of this structure is of type IN_ADDR. The IN_ADDR structure is defined in Windows Sockets header file WINSOCK.H as follows:
struct in_addr {
union {
struct{
unsigned char s_b1,
s_b2,
s_b3,
s_b4;
} S_un_b;
struct {
unsigned short s_w1,
s_w2;
} S_un_w;
unsigned long S_addr;
} S_un;
};