информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыПортрет посетителяСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Notepad++ полгода раздавал зараженные... 
 Китайский прорыв из ESXi 
 С наступающим 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Правильно ли я понял идею асинхронных сокетов? 14.12.01 17:46    Штраф: 10
Автор: gtdfgd Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Правильно ли я понял идею асинхронных сокетов?
По идее я что то упустил если не сложно подскажите

//////////////////////////////////////////////////////////////////
#include <windows.h>
#include <winsock.h>
#define WM_SELECT WM_USER+1
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
SOCKET sock;
SOCKET newsock[1000];
WSADATA ws;
DWORD currentsock;
WORD WSAEvent;
sockaddr_in addr;
MSG msg;
if(WSAStartup(0x101,&ws))
{MessageBox(NULL,"WSAStartup Error",NULL,NULL);return 0;}

sock=socket(AF_INET,SOCK_STREAM,0);
addr.sin_addr.s_addr=INADDR_ANY;
addr.sin_family=AF_INET;
addr.sin_port=htons(8888);

if(bind(sock,(sockaddr*)&addr,sizeof(addr)))
{MessageBox(NULL,"this port is used",NULL,NULL);return 0;}
if(listen(sock,5))
{MessageBox(NULL,"listen Error",NULL,NULL);return 0;}
WSAAsyncSelect(sock,(HWND__ *)hInstance,WM_SELECT,FD_ACCEPT|FD_READ|FD_CLOSE);

while(GetMessage(&msg,NULL,NULL,NULL))
{
switch (msg.message)
{
case WM_SELECT:
MessageBox(NULL,"WM_SELECT",NULL,NULL);
currentsock=msg.wParam;
WSAEvent=WSAGETSELECTEVENT(msg.lParam);
switch(WSAEvent)
{
case FD_CLOSE:
MessageBox(NULL,"FD_CLOSE",NULL,NULL);
shutdown(newsock[currentsock],1);
closesocket(newsock[currentsock]);
break;
case FD_READ:
MessageBox(NULL,"FD_READ",NULL,NULL);
break;
case FD_ACCEPT:
MessageBox(NULL,"FD_ACCEPT",NULL,NULL);
newsock[currentsock]=accept(sock,NULL,NULL);
break;
}
break;
}
}
WSACleanup();
return 0;
}
Правильно ли я понял идею асинхронных сокетов? 17.12.01 01:09  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
izvini, eto ya nechajanno otmoderil :-)))

vse pravil'no ponyal, no eto winsock 1.1
nemnogo ustarevshaya texnologia, xotya rabotaet.
chtoby xorosho vse ponyat', poprobuj poigrat' s WSA* funkciami. u nix vozmozhnostej pobol'she.

udachi.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach