乙個簡單的Windows下的socket程式

2021-07-12 06:17:25 字數 1373 閱讀 5986

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

伺服器端** server.cpp:

#include

#include

#pragma

comment

(lib,

"ws2_32.lib"

)//載入 ws2_32.dll

intmain

()

客戶端** client.cpp:

#include

#include

#include

#pragma

comment

(lib,

"ws2_32.lib"

)//載入 ws2_32.dll

intmain();

recv

(sock, szbuffer, maxbyte, null);

//輸出接收到的資料

printf

("message form server: %s\n"

, szbuffer);

//關閉套接字

closesocket

(sock);

//終止使用 dll

wsacleanup

();system

("pause"

);return0;

}

將 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 下用BAT寫乙個簡單的apk安裝器

使用android studio 打包了apk檔案,有時覺得給手機安裝apk挺麻煩的,不妨試試在windows上編寫bat程式給手機安裝apk。其實原理就是使用adb命令進行apk安裝。echo off title apk安裝 color e rem 將adb.exe新增到path中 echo 初始...

乙個簡單的Windows服務程式

service status servicestatus service status handle hservicestatushandle handle gettokenbyid int pid void winapi servicehandler dword fdwcontrol if set...

建立乙個簡單的windows 服務

此服務主要用於開啟服務後定時往資料庫中插入資料,直到關閉服務 1.建立乙個windows service 專案 2.新增乙個service業務功能,用乙個計時器 timer 定時往資料庫中插入記錄 此處需要注意,在initializecomponent方法中,需要將 private system.w...