WIN網路程式設計 TCPServer

2021-08-30 09:27:54 字數 921 閱讀 3615

//

// 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位元組的接收操作,這樣不會有記憶體鎖...