Alors dans ce cas comment je fais pour associé mon adresse IP de la carte à la socket (Serveur)
Voici mon code :
/*************************************************/
void Fonction_Thread_Serveur(LPVOID param)
/*************************************************/
{
char strTaille[20];
//char *Message_Emis;
int intTailleMessage;
SOCKET Desc_Socket_Locale;
int fin=FALSE;
Desc_Socket_Locale=(SOCKET)param;
while(!fin)
{
//printf("Reception message : %s",Message_Francais_A_Emettre);
if (Message_Francais_A_Emettre!=NULL)
{
printf("trame envoyee = %s\n",Message_Francais_A_Emettre);
//size_t intTailleMessage = sizeof(Message_Emis);
intTailleMessage = strlen(Message_Francais_A_Emettre);
send(Desc_Socket_Locale,Message_Francais_A_Emettre,intTailleMessage ,0);
_itoa(intTailleMessage ,strTaille,10);
//MessageBox(NULL,strTaille,"Taille de la trame",0);
Message_Francais_A_Emettre=NULL;
Sleep(5000);
//getch();
// GT Mis a vrai en temporaire ->
}
//fin=TRUE;
// <- GT Mis a vrai en temporaire
}
closesocket(Desc_Socket_Locale);
}
/*************************************************/
BOOL DemarreServeurFrancais(void)
/*************************************************/
{
int Code_Retour;
SOCKET Desc_Socket_Connection;
SOCKADDR_IN Adresse_Socket_Connection;
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested=MAKEWORD(1,1);
Code_Retour=WSAStartup(wVersionRequested,&wsaData);
if(Code_Retour!=0)
{
perror("WSAStartup\t");
//getch();
WSACleanup();
exit(errno);
}
printf("la version supportee est : %d.%d\n",
LOBYTE(wsaData.wHighVersion),
HIBYTE(wsaData.wHighVersion)
);
Desc_Socket_Connection=socket
(
AF_INET,
SOCK_STREAM,
0
);
printf("valeur de la socket = %d\n",Desc_Socket_Connection);
ZeroMemory(&Adresse_Socket_Connection,sizeof(Adresse_Socket_Connection));
Adresse_Socket_Connection.sin_family=AF_INET;
Adresse_Socket_Connection.sin_port=htons(Spationav->intPortTCP);
printf("Port TCP Client SPATIONAV : %d\n",Spationav->intPortTCP);
Code_Retour=bind
(
Desc_Socket_Connection,
(struct sockaddr*)&Adresse_Socket_Connection,
sizeof(Adresse_Socket_Connection)
);
if(Code_Retour!=0)
{
perror("bind\t");
//getch();
closesocket(Desc_Socket_Connection);
WSACleanup();
exit(errno);
}
Code_Retour=listen(Desc_Socket_Connection,Nb_Max_de_Client);
if(Code_Retour!=0)
{
perror("listen\n");
WSACleanup();
exit(errno);
}
printf("serveur Francais en attente d'une connection d'un client style SPATIONAV \n\n");
//printf("***************arret du serveur par<CTRL><C>**************\n\n");
//while(TRUE)
//do
{
SOCKET * pt_Nouveau_Socket_Serveur;
SOCKADDR_IN Adresse_Socket_Cliente;
int Longueur_Adresse;
HANDLE hthread;
DWORD threadID;
pt_Nouveau_Socket_Serveur = new SOCKET;
Longueur_Adresse = sizeof(Adresse_Socket_Cliente);
*pt_Nouveau_Socket_Serveur=accept
(
Desc_Socket_Connection,
(struct sockaddr*)&Adresse_Socket_Cliente,
&Longueur_Adresse
);
printf("connection accepte depuis le port client %d\n",
ntohs(Adresse_Socket_Cliente.sin_port));
hthread=CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)Fonction_Thread_Serveur,
(LPVOID)*pt_Nouveau_Socket_Serveur,
0,
&threadID
);
}
//}while(TRUE);
return (0);
}
Merci d'avance pour savoir comment cela est possible
Jeff.