Windows下的socket演示程式

2021-09-25 07:01:59 字數 1273 閱讀 2606

上節演示了 linux 下的 socket 程式,這節來看一下 windows 下的 socket 程式。同樣,server.cpp 為伺服器端**,client 為客戶端**。

伺服器端** server.cpp:

#include

#include

#pragma comment (lib, "ws2_32.lib") //載入 ws2_32.dll

int main()

客戶端** client.cpp:

#include

#include

#include

#pragma comment(lib, "ws2_32.lib") //載入 ws2_32.dll

int main();

recv(sock, szbuffer, maxbyte, null);

//輸出接收到的資料

printf("message form server: %s\n", szbuffer);

//關閉套接字

closesocket(sock);

//終止使用 dll

wsacleanup();

system("pause");

return 0;

}將 server.cpp 和 client.cpp 分別編譯為 server.exe 和 client.exe,先執行 server.exe,再執行 client.exe,輸出結果為:

message form server: hello world!

windows 下的 socket 程式和 linux 思路相同,但細節有所差別:

1) windows 下的 socket 程式依賴 winsock.dll 或 ws2_32.dll,必須提前載入。dll 有兩種載入方式,請檢視:動態鏈結庫dll的載入

2) linux 使用「檔案描述符」的概念,而 windows 使用「檔案控制代碼」的概念;linux 不區分 socket 檔案和普通檔案,而 windows 區分;linux 下 socket() 函式的返回值為 int 型別,而 windows 下為 socket 型別,也就是控制代碼。

3) linux 下使用 read() / write() 函式讀寫,而 windows 下使用 recv() / send() 函式傳送和接收。

4) 關閉 socket 時,linux 使用 close() 函式,而 windows 使用 closesocket() 函式。

參考文章:

windows 下socket 程式設計

111111windows 下用microsoft visual studio 2005 編寫socket程式 windows 下實現同步socket程式設計,和linux下有許多相同的地方,基本的socket流程完全相同,所有的socket 相關的函式都在 winsock.h 中宣告 還有wind...

Windows下Socket程式設計

監聽listen 接收accept 傳送send tcp sendto udp 接收recv tcp recvfrom udp 連線connect 載入庫資源 wsastartup 建立socket socket 繫結位址資訊 bind 監聽 listen 獲取監聽佇列第乙個連線處理 accept ...

windows下TCP的socket程式設計

unix環境程式設計很好闡述socket的概念 socket起源於unix,而unix linux基本哲學之一就是 一切皆檔案 都可以用 開啟open 讀寫write read 關閉close 模式來操作。我的理解就是socket就是該模式的乙個實現,socket即是一種特殊的檔案,一些socket...