網路程式設計之SOCKET程式設計學習筆記

2021-08-03 14:22:01 字數 1622 閱讀 7353

使用tcp/ip協議的應用程式通常採用應用程式設計介面:unix  bsd的套接字(socket)和unix system v的tli(已經被淘汰),來實現網路程序之間的通訊。就目前而言,幾乎所有的應用程式都是採用socket,而現在又是網路時代,網路中程序通訊是無處不在,這就是我為什麼說「一切皆socket」。

--摘自某博主的總結

windowssockets程式設計

載入套接字型檔

建立套接字

繫結位址資訊

伺服器端與客戶端互相通訊

伺服器端**:

#include #include void main()

if(lobyte(wsadata.wversion)!=0 || hibyte(wsadata.wversion)!=0)

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

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

sockaddr_in addrsrc;

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

addrsrc.sin_family=af_inet;

addrsrc.sin_port=htons(3000);

//繫結套接字

bind(socksrc,(sockaddr*)&addrsrc,sizeof(sockaddr));

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

listen(socksrc,5);

sockaddr_in addrclient;

int len=sizeof(sockaddr);

while(1)

}

客戶端**:

#include #include void main()

if(lobyte(wsadata.wversion)!=0 || hibyte(wsadata.wversion)!=0)

//建立套接字

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(3000);

//向伺服器傳送請求

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

//接收資料

char recvbuf[100];

recv(sockclient,recvbuf,100,0);

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

//傳送資料

send(sockclient,"this is my world",strlen("this is my world")+1,0);

//關閉套接字

closesocket(sockclient);

wsacleanup();

}

unix/linux socket程式設計

網路程式設計之Socket程式設計

對 tcp ip udp socket 程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission co...

網路程式設計之socket程式設計

大多數專案是在linux下開發伺服器端,而在windows下開發客戶端,需要經常在兩大平台之間進行切換,單獨學習一種平台沒有實踐意義。值得欣慰的是,兩大平台下的 socket 程式設計非常相似,並不會增加多少學習成本。網路程式設計就是編寫程式使兩台聯網的計算機相互交換資料。這就是socket的全部內...

網路程式設計之socket程式設計

什麼是socket程式設計 我們經常把socket翻譯為套接字,socket是在應用層和傳輸層之間的乙個抽象層,它把tcp ip層複雜的操作抽象為幾個簡單的介面 用層呼叫已實現程序在網路中通訊。socket起源於unix,在unix一切皆檔案哲學的思想下,socket是一種 開啟 讀 寫 關閉 模式...