//
// tcpserver.cpp檔案
#include "../common/initsock.h"
#include
cinitsock initsock;//初始化winsock庫
int main()
// 填充sockaddr_in結構
sockaddr_in sin;
sin.sin_family = af_inet;
sin.sin_port = htons(4567);
sin.sin_addr.s_un.s_addr = inaddr_any;
// 繫結這個套節字到乙個本地位址
if(::bind(slisten,(lpsockaddr)&sin, sizeof(sin)) ==socket_error)
// 進入監聽模式
if(::listen(slisten, 2) == socket_error)
// 迴圈接受客戶的連線請求
sockaddr_in remoteaddr;
int naddrlen = sizeof(remoteaddr);
socket sclient;
char sztext = " tcp server demo! \r\n";
while(true)
printf(" 接受到乙個連線:%s \r\n",inet_ntoa(remoteaddr.sin_addr));
// 向客戶端傳送資料
::send(sclient, sztext,strlen(sztext), 0);
// 關閉同客戶端的連線
::closesocket(sclient);
}// 關閉監聽套節字
::closesocket(slisten);
return 0;
}
WIN網路程式設計 WSAAsyncSelect
wsaasyncselect.cpp檔案 define wsagetselecterror lparam hiword lparam 高字為出錯 define wsagetselectevent lparam loword lparam 低字為通知碼 允許應用程式以windows訊息的形式接收網路事...
WIN網路程式設計 IOCP服務程式 (
iocpserver.cpp檔案 ciocpserver類的測試程式 include iocp.h include include class cmyserver public ciocpserver void onconnectionclosing ciocpcontext pcontext,ci...
WIN網路程式設計 IOCP服務程式設計注意事項
iocp服務程式設計注意事項 記憶體資源管理 每個重疊的傳送或接收操作所提交的資料緩衝區很可能會鎖定。記憶體被鎖定之後,它不能從物理記憶體換出。但作業系統對 鎖定記憶體的數量 不是投遞的運算元量 有限制,如果伺服器預期處理大量的併發客戶,可以在每個連線上投遞乙個0位元組的接收操作,這樣不會有記憶體鎖...