Windows Sockets API (Winsock) 1.1 版 (1993/01/20) 定義 **30 個 BSD 標準函數** 與 **16 個 Windows 專屬擴充函數**,支援 **Stream (TCP)** 與 **Datagram (UDP)** 兩種 Socket 型態。本文為系列第一部分,涵蓋連線建立、資料傳輸、位址轉換等基礎 API (第 1-10 號)。
WSAEINPROGRESS)PostMessage 通知完成,需指定視窗控制代碼與訊息編號SOCKET PASCAL FAR accept(SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen);
accept;原 Socket 繼續監聽WSAEWOULDBLOCKint PASCAL FAR bind(SOCKET s, const struct sockaddr FAR *name, int namelen);
name 可設 INADDR_ANY (所有介面) + Port 0 (系統自動指派 1024-5000)getsockname 取得int PASCAL FAR closesocket(SOCKET s);
SO_DONTLINGER:立即返回,資料背景送完SO_LINGER:l_linger=0 立即重置 (資料遺失);>0 等待送完或逾時int PASCAL FAR connect(SOCKET s, const struct sockaddr FAR *name, int namelen);
int PASCAL FAR getpeername(SOCKET s, struct sockaddr FAR *name, int FAR *namelen);
int PASCAL FAR getsockname(SOCKET s, struct sockaddr FAR *name, int FAR *namelen);
INADDR_ANY,需連線成功後才能取得具體 IPint PASCAL FAR getsockopt(SOCKET s, int level, int optname, char FAR *optval, int FAR *optlen);
level:SOL_SOCKET, IPPROTO_TCPSO_ACCEPTCONN (是否監聽中)、SO_TYPE (Socket 型態)、SO_ERROR (延遲錯誤碼)、TCP_NODELAY 等u_long PASCAL FAR htonl(u_long hostlong);
u_short PASCAL FAR htons(u_short hostshort);
unsigned long PASCAL FAR inet_addr(const char FAR *cp);
a.b.c.d, a.b.c, a.b, aINADDR_NONEinet_pton (支援 IPv6)WSAAsyncGetHostByName, WSAAsyncSelect, WSACancelAsyncRequestWSACancelBlockingCall, WSAIsBlocking, WSASetBlockingHook, WSAUnhookBlockingHookWSAStartup, WSACleanupWSAGetLastError, WSASetLastError下集將說明 inet_ntoa, ioctlsocket, listen, ntohl/ntohs, recv/recvfrom, select, send/sendto, setsockopt, shutdown, socket 等進階 I/O 與控制函數。