Socket 程式設計讓你抓狂?man page 看不懂?connect() 前還要 bind() 搞不清?本系列翻譯自 Brian "Beej Jorgensen" Hall 經典教學 Beej's Guide to Network Programming(版本 3.0.14),以程式設計師視角重新詮釋,非逐字翻譯,適合具 C 基礎、想入門網路程式設計的讀者。
初學 Socket 程式設計、尋找入門指引者。非完整參考手冊,重點在建立直觀理解。
-lnsl -lsocket -lresolv。#include <winsock.h>
#pragma comment(lib, "ws2_32.lib")
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
// ... 使用 socket API ...
WSACleanup();
關鍵差異:
<winsock.h>(或 <winsock2.h>)。WSAStartup(),結束呼叫 WSACleanup()。WSAGetLastError() 取代 errno。下一篇將正式進入 Socket 概念:什麼是 Socket?Stream vs Datagram,TCP/UDP 差異。