建立基本 Winsock 應用程式
建立基本 Winsock 應用程式
建立新的空白專案。
將空的 C++ 原始程式檔新增至專案。
請確定組建環境參考 Microsoft Windows 軟體發展工具組 (SDK) 或舊版平臺軟體發展工具組 (SDK) 的 Include、Lib 和 Src 目錄。
請確定組建環境會連結至 winsock Library 檔案Ws2_32.lib。 使用 Winsock 的應用程式必須與 Ws2_32.lib 程式庫檔案連結。 #pragma批註會向連結器指出需要 Ws2_32.lib 檔案。
開始設計 Winsock 應用程式。 包含 Winsock 2 標頭檔,以使用 Winsock API。 Winsock2.h標頭檔包含大部分的 Winsock 函式、結構和定義。 Ws2tcpip.h標頭檔包含 WinSock 2 Protocol-Specific附錄檔中所導入的定義,其中包含用來擷取 IP 位址的較新函式和結構。
注意
Stdio.h 用於標準輸入和輸出,特別是 printf () 函式。
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
int main() {
return 0;
}
注意
如果應用程式使用 IP 協助程式 API,則需要 Iphlpapi.h 標頭檔。 需要 Iphlpapi.h 標頭檔時, Winsock2.h 標頭檔#include行應該放在 Iphlpapi.h 標頭檔#include行之前。
Winsock2.h標頭檔在內部包含來自 Windows.h標頭檔的核心元素,因此 Winsock 應用程式中的Windows.h標頭檔通常沒有#include行。 如果 Windows.h 標頭檔需要#include行,這應該前面加上 #define WIN32_LEAN_AND_MEAN 宏。 基於歷史原因, Windows.h 標頭預設為包含 Windows Sockets 1.1 的 Winsock.h 標頭檔。 Winsock.h標頭檔中的宣告會與 Windows Sockets 2.0 所需的 Winsock2.h標頭檔中的宣告衝突。 WIN32_LEAN_AND_MEAN 宏可防止Windows.h標頭包含Winsock.h。 說明此範例的範例如下所示。
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
int main() {
return 0;
}
下一個步驟: 初始化 Winsock
相關主題