C Socket程式設計步驟 第一版

2021-09-02 06:36:34 字數 2202 閱讀 6911

1:server端

#include

#include

#pragma comment(lib, "ws2_32.lib")

voidmain()

if( lobyte( wsadata.wversion ) != 1 ||

hibyte( wsadata.wversion ) != 1 )

socket socksrv=socket(af_inet,sock_stream,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));

listen(socksrv,5);

sockaddr_in addrclient;

intlen=sizeof(sockaddr);

while(1)

}

2.客戶端:

#include

<

stdio.h

>

#include

<

winsock2.h

>

void

main()

if( lobyte( wsadata.wversion ) !=1

||hibyte( wsadata.wversion ) !=1

) socket sockclient

=socket(af_inet,sock_stream,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr

=inet_addr(

"127.0.0.1");

addrsrv.sin_family

=af_inet;

addrsrv.sin_port

=htons(

6000

);connect(sockclient,(sockaddr*)

&addrsrv,

sizeof

(sockaddr));

send(sockclient,

"hello

",strlen(

"hello")

+1,0

);char

recvbuf[

50];

recv(sockclient,recvbuf,50,

0);printf(

"%s\n

",recvbuf);

closesocket(sockclient);

wsacleanup();}

第二公升級:

改進支援多客戶端連線;

怎麼辦,accpet乙個連線後,立刻就起乙個執行緒這樣 針對每個客戶端 啟動乙個執行緒去hold住,做接收和傳送的工作 ,這樣可以支援多個

客戶端了

第三部分:

iocp方式,要知道執行緒這個東西是很消耗cpu資源的, 並且執行緒數量是有限的,並且io也消耗資源所以需要使用iocp這種框架系統

去做!!

第一版Python程式

coding cp936 import os import cpickle as p class person def init self,name,age,self.name name self.age age self.def str self return name self.name age...

MVC面試第一版

mvc流程 1 使用者向伺服器傳送請求,請求被springmvc 前端控制器 dispatcherservlet 捕獲 2 dispatcherservlet對請求url進行解析,得到請求資源識別符號 uri 4 dispatcherservlet 根據獲得的handler,選擇乙個合適的handl...

HomePlay第一版demo發布

一直想做乙個能夠方便跨平台開發的應用框 基礎部分已經完成,於是將這個處於襁褓中的框架應用在win32基礎之上,花了些功夫研究了ffmpeg的使用,做了乙個demo,發布出來吸引批評與建議。框架基礎部分用c語言開發,以dll方式封裝了核心功能以及對ffmpeg的使用部分。出於簡單考慮,外部採用mfc包...