MFC 網路程式設計TCP IP 附挺詳細的注釋

2021-08-27 09:49:48 字數 2283 閱讀 6786

一.1 tcp/ip伺服器**:

#pragma comment(lib, "ws2_32.lib")//使用winsock庫中的函式需要載入這個動態鏈結庫。

#include//因為要使用winsock庫中的函式

#include//輸入輸出流

#include

using namespace std;

void main()

//-------建立用於監聽的套接字-----------

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

//引數:af_inet位址族(這裡只能是af_inet或pf_inet,兩者在windows沒區別),sock_stream基於tcp/ip需要建立的是流式套接字(所以這裡只能是sock_stream),

//0(根據位址格式和套接字類別,自動選擇乙個合適的協議)

//--------繫結套接字------------

sockaddr_in addrsrv;

//struct sockaddr_in

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

//s_addr需要u_long型別。htonl函式可以將inaddr_any值轉換為網路位元組順序。htonl函式將乙個u_long型別的值從主機位元組順序轉換為tcp/ip的網路位元組順序

//將ip位址指定為inaddr_any,允許套接字向任何分配給本地機器的ip位址傳送或接收資料。當有多個網絡卡多個ip,使用inaddr_any可以簡化程式設計

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);//要使用1024以上埠。htons函式將乙個u_short型別的值從主機位元組順序轉換為tcp/ip網路位元組順序。

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

//建立套接字後,要將該套接字繫結到本地的某個位址和埠上。引數(要繫結的套接字,該套接字的本地位址資訊,該位址結構的長度)

//-------將套接字設為監聽模式,準備接收客戶端請求-------

listen(socksrv,5);//引數(套接字描述符,backlog這裡是5(等待連線佇列的最大長度))

sockaddr_in addrclient;//用來接收客戶端的位址資訊

int len=sizeof(sockaddr);//對accept的第三個函式來說,在呼叫之前必須為它賦予乙個初始值,即sockaddr_in(?還是sockaddr?)結構體長度。

while(1)

} 一.2 tcp/ip 客戶端**

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

#include

#include

#include

#include

using namespace std;

void main()

//--------建立套接字---------------

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

//--------向伺服器發出連線請求------

//設定要連線的伺服器的資訊

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr=inet_addr("127.0.0.1");//案例伺服器和客戶端都在本地,固可以使用本地迴路位址127.0.0.1

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

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

//----------接收資料----------------

char recvbuf[100];

recv(sockclient,recvbuf,100,0);

printf("%s\n",recvbuf);

//----------傳送資料----------------

string sendbuf;

while('\n'!=cin.peek())

//---------關閉套接字--------------

closesocket(sockclient);

wsacleanup(); }

//**來自vc++深入詳解。udp/ip部分就沒發了,**相差不大,沒怎麼注釋了。

MFC 網路程式設計TCP IP 附挺詳細的注釋

一.1 tcp ip伺服器 pragma comment lib,ws2 32.lib 使用winsock庫中的函式需要載入這個動態鏈結庫。include 因為要使用winsock庫中的函式 include 輸入輸出流 include using namespace std void main 建立...

Android網路程式設計(二) TCP IP協議詳解

tcp ip transmission control protocol internet protocol,傳輸控制協議 網際協議 是指能夠在多個不同網路間實現資訊傳輸的協議簇。tcp ip協議不僅僅指的是tcp 和ip兩個協議,而是指乙個由ftp smtp tcp udp ip等協議構成的協議簇...

TCP IP網路程式設計

tcp ip 是供已連線網際網路的計算機進行通訊的通訊協議。tcp ip 定義了裝置 並非只有計算機 如何連入網際網路,以及資料如何在它們之間傳輸的標準。ip internet protocol 網際網路協議。從這個名稱我們就可以知道ip協議的重要性。在現實生活中,我們進行貨物運輸時都是把貨物包裝成...