首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Beej's Guide to Network Programming 系列連載 01:導讀

     編輯:關於C語言

系列緣起

Socket 程式設計讓你抓狂?man page 看不懂?connect() 前還要 bind() 搞不清?本系列翻譯自 Brian "Beej Jorgensen" Hall 經典教學 Beej's Guide to Network Programming(版本 3.0.14),以程式設計師視角重新詮釋,非逐字翻譯,適合具 C 基礎、想入門網路程式設計的讀者。

讀者對象

初學 Socket 程式設計、尋找入門指引者。非完整參考手冊,重點在建立直觀理解。

平台與編譯器

  • 範例代碼於 Linux + GCC 驗證通過。
  • Windows 需額外處理(見下)。
  • Solaris/SunOS 編譯需連結 -lnsl -lsocket -lresolv。

Windows 程式設計師必讀

#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();

關鍵差異:

  1. 標頭檔改為 <winsock.h>(或 <winsock2.h>)。
  2. 程式啟動必須呼叫 WSAStartup(),結束呼叫 WSACleanup()。
  3. 錯誤碼用 WSAGetLastError() 取代 errno。

下一步預告

下一篇將正式進入 Socket 概念:什麼是 Socket?Stream vs Datagram,TCP/UDP 差異。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved