Показать сообщение отдельно

  #1280  
Старый 07.07.2008, 21:33
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
С нами: 9622901

Репутация: 88
Question

Создаю не блокируеммый сокет(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 и тд???
 
Ответить с цитированием