Jokerjar
![](http://forum.ru-board.com/board/avatars/private/Jokerjar.gif)
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Кто хорошо знает winsock2? Умоляю, помогите! Пишу программу сетевую, на сервере открываю порт: void __fastcall StartServer() { if (WSAStartup(MAKEWORD(2,0),&WSA)==0) { Sock=socket(AF_INET,SOCK_STREAM,0); if (Sock!=INVALID_SOCKET) { address.sin_addr.s_addr = htonl(INADDR_ANY); address.sin_family = AF_INET; address.sin_port = htons(Port); bind(Sock,( sockaddr * )&address,sizeof(address)); listen(Sock,SOMAXCONN); WSAAsyncSelect(Sock,Form1->Handle,WM_MYMSG, FD_READ | FD_ACCEPT | FD_CLOSE); } } } Задаю события на сообщение WM_MYMSG: LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM wpar, LPARAM lpar) { if (msg == WM_MYMSG) { sClient = wpar; if (WSAGETSELECTEVENT(lpar) == FD_READ) { recv(sClient,(char *)&n,sizeof(n),0); } if (WSAGETSELECTEVENT(lpar) == FD_ACCEPT) { accept(sClient,0,0); Form1->Memo1->Lines->Add("Клиент подсоединился"); } if (WSAGETSELECTEVENT(lpar) == FD_CLOSE) { Form1->Memo1->Lines->Add("Клиент отсоединился"); } } return CallWindowProc((FARPROC)Form1->OldWindowProc, hWnd, msg, wpar, lpar); } Проблема заключается в том, чтобы узнать удаленный айпишник. На этапе подключения клиента это можно узнать из функции accept. А мне нужно узнавать IP адресс каждый раз в момент принятия сообщения (recv). Как это сделать??? | Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 02:17 26-10-2006 | Исправлено: Jokerjar, 02:20 26-10-2006 |
|