#include#include#include#include#include#pragma comment(lib,"ws2_32.lib")
#define default_buflen 512
#define default_port 27015
int _tmain()
//建立監聽套接字
if(seversocket == invalid_socket)
//binding.....
sockaddr_in addrserv;
addrserv.sin_family = af_inet;
addrserv.sin_port = htons(default_port);
addrserv.sin_addr.s_un.s_addr = htonl(inaddr_any);
iresult = bind(seversocket, (const struct sockaddr*)&addrserv,sizeof(sockaddr_in));
if(iresult == socket_error)
iresult = listen(seversocket,somaxconn);
if(iresult == socket_error)
//tcp sever strting...
//建立事件物件,建立重疊結構
eventarray[eventtotal] = wsacreateevent();
zeromemory(buffer,default_buflen);
databuf.len= default_buflen;
databuf.buf = buffer;
eventtotal++;
sockaddr_in addrclient;
int addrclientlen = sizeof(sockaddr_in);
socket acceptsocket;
//迴圈處理客戶端連線請求
while(true)
//接收到新鏈結 ip :inet_ntoa(addrclient.sin_addr);
while(true)
index = wsawaitformultipleevents(eventtotal,eventarray,false,wsa_infinite,false);
if(bytestransferred ==0)
//success in receiving.....
//deal with data....
//重置已授信的事件物件
wsaresetevent(eventarray[index - wsa_wait_event_0]);
//重置flags變數和重疊結構
flags = 0;
zeromemory(buffer,default_buflen);
//重置緩衝區
databuf.len = default_buflen;
databuf.buf = buffer;
} }return 0;
}
非同步通知I O模型和重疊I O模型
理解非同步通知i o模型 理解同步和非同步 同步i o的缺點及非同步方式的解決方案 理解非同步通知i o模型 實現非同步通知i o模型 wsaeventselect函式和通知 include intwsaeventselect socket s,wsaevent heventobject,long ...
Socket模型之重疊I O模型
socket模型之重疊i o模型 這幾天一直在看關於socket程式設計的幾種非同步程式設計,我覺得關於重疊i o模型的一些基本知識,我有必要記下來。在實際的程式設計過程中,我們需要按照下面幾步來編寫我們的socket重疊模型的程式 一 在伺服器端 1 首先初始化socket套接字。由於編寫非同步套...
WinSock重疊IO模型一
winsock的重疊io模型也就是重疊io的乙個特例罷了。其實就是把套接字當成檔案來操作。在重疊io中,如果讀大檔案的時候,為了不在那裡幹等。告訴系統,我先去下兩盤象棋,你讀完了,告訴我一下。下棋時視窗是全屏的,讀完後,彈乙個對話方塊出來告訴我下吧。恩,下棋,真是浪費時間的事,得戒掉啊。winsoc...