WinSocket簡單程式設計實驗

2021-06-29 00:35:43 字數 2403 閱讀 9532

這一節是計算機網路作業,windows socket程式設計,老師電腦上開乙個伺服器程式,公開ip位址和埠號,我們同學自己編寫乙個客戶端,能與老師的伺服器建立聯絡,兩者能收發即可。這樣的**網上很多,而是就採用了孫鑫vc++第14講的**,下面是新增的一點簡單注釋。

其實socket完成連線功能很簡單,依葫蘆畫瓢即可。首先來看面向連線的tcp流程圖。

面向無連線的udp流程更加簡單,如下所示:

現在用tcp協議來完成任務,下面是孫鑫老師的**,由於我們要提前測試自己的**,所以也用了伺服器端的**,伺服器端端server**如下:

1 #include 2 #include 3

4void

main()517

1819

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

20 hibyte( wsadata.wversion ) != 1

) 24

2526

//真正socket程式設計部分

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

面向連線的可靠性服務sock_stram

2829 sockaddr_in addrsrv;//

存放本地位址資訊的

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

htol將主機位元組序long型轉換為網路位元組序

31 addrsrv.sin_family=af_inet;

32 addrsrv.sin_port=htons(6001);//

htos用來將埠轉換成字元,1024以上的數字即可

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

將socket繫結到相應位址和埠上

3536 listen(socksrv,5);//

等待佇列中的最大長度為5

3738

sockaddr_in addrclient;

39int len=sizeof

(sockaddr);

4041

while(1)42

54 }

客戶端client的**如下:

1 #include 2 #include 3

4void

main()517

1819

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

20 hibyte( wsadata.wversion ) != 1

) 24

25//

建立通訊socket

26 socket sockclient=socket(af_inet,sock_stream,0

);27

28sockaddr_in addrsrv;

29 addrsrv.sin_addr.s_un.s_addr=inet_addr("

192.168.1.24

");//

設定需要連線的伺服器的ip位址

30 addrsrv.sin_family=af_inet;

31 addrsrv.sin_port=htons(6001);//

設定需要連線的伺服器的埠位址

32 connect(sockclient,(sockaddr*)&addrsrv,sizeof(sockaddr));//

與伺服器進行連線

3334

//接受來自老師的資訊

35char recvbuf[100

];36 recv(sockclient,recvbuf,100,0

);37 printf("

來自老師的資訊:\n%s\n

",recvbuf);

3839

//傳送資訊給老師

40 send(sockclient,"

",strlen("

")+1,0

);41

42closesocket(sockclient);

43wsacleanup();

44 }

模擬執行結果如下:

WinSocket簡單程式設計實驗

這一節是計算機網路作業,windows socket程式設計,老師電腦上開乙個伺服器程式,公開ip位址和埠號,我們同學自己編寫乙個客戶端,能與老師的伺服器建立聯絡,兩者能收發即可。這樣的 網上很多,而是就採用了孫鑫vc 第14講的 下面是新增的一點簡單注釋。其實socket完成連線功能很簡單,依葫蘆...

WinSocket簡單程式設計實驗

這一節是計算機網路作業,windows socket程式設計,老師電腦上開乙個伺服器程式,公開ip位址和埠號,我們同學自己編寫乙個客戶端,能與老師的伺服器建立聯絡,兩者能收發即可。這樣的 網上很多,而是就採用了孫鑫vc 第14講的 下面是新增的一點簡單注釋。其實socket完成連線功能很簡單,依葫蘆...

winsocket程式設計例項

include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,sock stream,0 sockaddr in addrsrv addrs...