je suis tjr ds la prog d'un client/serveur, et pour le serveur j'ai comme un prob que je n'arrive pas a resoudre.
Au lancement de mon serveur, j'ai cette fonction de lancer :
void InitSocket(HWND fHwnd)
{
WSAStartup(MAKEWORD(2,0), &wsa);
s = socket(AF_INET, SOCK_STREAM, 0);
if(SOCKET_ERROR == WSAAsyncSelect(s, fHwnd, WM_SOCKET, FD_ACCEPT|FD_CLOSE))
{
Affiche(fHwnd, "Erreur WSAAsyncSelect 1");
}
sin.sin_family = AF_INET;
sin.sin_port = htons(PORT);
sin.sin_addr.S_un.S_addr = INADDR_ANY;
SinSize = sizeof(sin);
if(bind(s,(sockaddr *) &sin, sizeof(sin)) == SOCKET_ERROR)
{
Affiche(fHwnd, "Erreur bind");
}
if(listen(s, 1) == SOCKET_ERROR)
{
Affiche(fHwnd, "Erreur listen");
}
}
ds ma fonction CallBack j'ai :
case WM_SOCKET:
{
switch (WSAGETSELECTEVENT(lParam))
{
case FD_ACCEPT:
{
c = accept(s, (sockaddr *) &sin, &SinSize);
if(c == INVALID_SOCKET)
{
Affiche(hwnd, "Erreur accept");
}
if(SOCKET_ERROR == WSAAsyncSelect(c, hwnd, WM_SOCKET, FD_READ|FD_CLOSE))
{
Affiche(hwnd, "Erreur WSAAsynclect 2");
}
}
case FD_READ:
{
recv(c, buffer, 255, 0);
Affiche(hwnd, buffer);
}
case FD_CLOSE :
{
closesocket(c);
}
}
}
la fonction Affiche() affiche une msgbox avec le texte défini
le probleme est que lorsque j'etablie une connection, j'ai une message box qui s'affiche avec rien comme texte (c'est le Affiche(hwnd, buffer)), et lorsque je fait un send avec le client, rien ne se passe.
qqn aurait-il une solution ?
merci a ceux qui s'interesseront a mon probleme