Как можно определить IP, который подключается к серверу? Функцией RECV считывается только содержимое пакета без заголовка. Остается только сокет, но как по нему определить IP? Я в MSDN не смог найти. Вот код сервера:
| Код | short int port; WSAStartup(0x101, &wsadata); sin.sin_family = AF_INET; port = htons(PORT); sin.sin_port = port; sock = socket(PF_INET, SOCK_STREAM, NULL); WSAAsyncSelect(sock, hWnd, WM_LISTSOCKET, FD_ACCEPT|FD_READ|FD_CLOSE); bind(sock, (sockaddr*)&sin, sizeof(sin)); listen(sock, 2); ... case WM_LISTSOCKET: switch (LOWORD(lParam)) { case FD_ACCEPT: SOCKET New; New = accept(sock, 0, 0); sockets[num]=New; status[num]=0;
++connections; break; case FD_READ:
int HR; HR = recv((SOCKET)wmEvent , recvbuf, 255, NULL); if (HR == -1) break; ZeroMemory(&recvbuf, 255); break;
case FD_CLOSE: closesocket(sockets[i]); sockets[i]=0; status[i]=0; --connections; break; ...
|
|