創建套接字(Socket)對象


無論是使用哪種協議,無論是客戶端還是服務端,在使用Socket進行通信之前,首先要完成Winsock庫的初始化工作,之后應該創建Socket對象,用它進行網絡通信。使用Socket這個API函數可以完成該功能,函數原型如下。

SOCKET socket(
 int af,    //指定套接字使用的地址格式
 int type,   //套接字類型
 int protocol //套接字協議類型
);

第一個參數af用來指定套接字使用的地址格式,對於Windows下的Winsock庫所支持的地址族值為AF_INET。

第二個參數type用來指定套接字的類型,通常有如下類型。

SOCK_STREAM //流套接字,TCP協議使用的有連接的可靠傳輸類型
SOCK_DGRAM  //數據報套接字,UDP使用的無連接的不可靠的傳輸類型

第三個參數protocol用來指定Socket對象所使用的協議類型,通常有如下類型。

IPPROTO_TCP  //TCP協議
IPPROTO_UDP //UDP協議

然而當type為SOCK_STREAM值時,就指明是用於TCP協議,為SOCK_DGRAM值時,就指明是用於UDP協議。所以這兩種情況下protocol參數可以是0。函數執行成功則返回一個socket對象,否則返回INVALID_SOCKET(-1),可以使用WSAGetLastError函數獲得錯誤代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM