//這是乙個winsock非同步程式設計的例子
//這個服務監聽1000埠,可以使用 tel*** localhost 1000進行測試,最大允許20個連線
#include
#include
#pragma ***ment(lib, "ws2_32.lib")
#define max_sockets 20
#define max_backlog 1
#define port 1000
socket startlisten(int port)
socket sock=socket(af_i***,sock_stream,ipproto_ip);
if(sock==invalid_socket)
sockaddr_in addr;
addr.sin_family=af_i***;
addr.sin_port= htons(port); //保證位元組順序
addr.sin_addr.s_addr= htonl(inaddr_any);
nresult=bind(sock,(sockaddr*)&addr,sizeof(sockaddr));
if(nresult==socket_error)
nresult=listen(sock,max_backlog); //最多 max_backlog 個 pending 連線
if(nresult==socket_error)
printf("please try: tel*** localhost 1000/n");
return sock;
}int main()
}break;
case fd_read:
rc=send(socklist[index],&mess,sizeof(mess),0);
printf("%c",mess);
}break;
case fd_write:
break;
case fd_close:
break;}}
return 0;
}
WinSock和非同步io
一般socket本身可以設定屬性,阻塞或者非阻塞,阻塞模式下accept,connect,send,recv,sendto,recvfrom操作都會等待socket的訊號,send要等待操作完成後才會返回,等待的時間也是在等socket的狀態變為可寫。只不過等待的操作由作業系統來做,當前執行緒被掛起...
winsock程式設計
伺服器端 include include pragma comment lib,ws2 32.lib using namespace std void do service socket conn while 1 不斷接收客戶端傳送的資料 if lobyte wsadata.wversion 2 h...
Winsock程式設計框架
microsoft的windows sockets api是windows下的網路應用程式介面,為了適用於 windows下的訊息機制和非同步的i o選擇操作,windows sockets api在功能上擴充了將近 20個函式,其中擴充的部分均冠以字首wsa windows sockets asy...