使用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是一種 開啟 讀 寫 關閉 模式...