
07.07.2008, 21:33
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
С нами:
9622901
Репутация:
88
|
|
Создаю не блокируеммый сокет(WSAAsyncSelect ) в консоли:
Код:
#include <winsock2.h>
#include <windows.h>
#pragma comment (lib, "ws2_32.lib")
#define IN_PORT 44405
#define MAX_DATA 100
#define WM_ASYNC_CLIENTEVENT WM_USER+1
SOCKET hListenSockTCP = INVALID_SOCKET;
SOCKADDR_IN myaddrTCP;
char buf[MAX_DATA];
HWND hwndMain;
int main()
{
SetConsoleTitle(L"CS");
HWND hwndConsoleWindow;
hwndConsoleWindow=FindWindow(NULL, L"CS");
if (hwndConsoleWindow==0)
{
printf("Error Find Window");
exit(0);
}
hwndMain = hwndConsoleWindow;
WSADATA stWSADataTCPIP;
if( WSAStartup(0x0101, &stWSADataTCPIP) )
printf("WSAStartup error !\n");
hListenSockTCP = socket (AF_INET,SOCK_STREAM,0);
myaddrTCP.sin_family = AF_INET;
myaddrTCP.sin_addr.s_addr = htonl (INADDR_ANY);
myaddrTCP.sin_port = htons (IN_PORT);
if( bind(hListenSockTCP,(LPSOCKADDR)&myaddrTCP, sizeof(struct sockaddr)) )
printf("This port in use!\n");
if ( listen (hListenSockTCP, 5) )
printf("listen error!\n");
if ( WSAAsyncSelect (hListenSockTCP,hwndMain,WM_ASYNC_CLIENTEVENT,FD_ACCEPT|FD_READ|FD_CLOSE) )
printf("AsyncSelect error!\n");
getchar();
return 0;
}
Вопрос, как обрабатывать события ,FD_ACCEPT,FD_READ,FD_CLOSE и тд???
|
|
|