1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| int wndprocmessage(HWND hwnd,int message,int wparam,int lparam)
{
if (oldwndprocmessage!=0)
if (message==WM_USER+1)
{
switch (WSAGETSELECTEVENT(lparam))
{
case FD_ACCEPT:
{
//Sleep(1000);
int ClientSocket = accept(wparam, 0, 0);
WSAAsyncSelect(ClientSocket, hwnd, WM_USER+1, FD_READ | FD_WRITE | FD_CLOSE);
PSOCKETREQUEST rq=(PSOCKETREQUEST)malloc(sizeof(TSOCKETREQUEST));
rq->hsocket=ClientSocket;
lessockets.push_back(rq);
//rq->ID=createrequest(signsocket,rq,procsend,procclose);
}
break;
case FD_READ:
{
char buf[256];
int ret = recv(wparam, buf, 128, 0);
if (ret!=-1)
{
int ID=findsocket(wparam);
if (ID!=0)
{
//sendofrecv(ID,buf,ret);
}
}
}
break;
case FD_CLOSE:
int ID = findsocket(wparam);
if (ID!=0)
{
cancelrequest(ID); //cancelrequest qui appel la fonction closeconnection (closesocket)
}
else
closesocket(wparam);
//closesocket(wparam);
break;
} |
Partager