connect函數詳解


不得不說,客戶端的connect函數和服務端的accept函數是一對好基友,如果客戶端沒有去connect, 那么服務端的accept會一直在那里傻傻地痴痴地等待,我們先來看看connect函數的原型吧:

WINSOCK_API_LINKAGE
int
WSAAPI
connect(
    SOCKET s,
    const struct sockaddr FAR * name,
    int namelen
    );

第一個參數是客戶端的套接字(表明即將發起連接請求),第二個參數是服務端的套接字所在的“地方”(“地方”是我自定義的專有名詞),第三個參數是該“地方”的大小。

      如果請求連接成功,則返回0,否則返回錯誤碼。

     

     下面我們看看服務端如何去發起連接請求:

    SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    addrSrv.sin_family = AF_INET;
    addrSrv.sin_port = htons(8888);
    connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));

當然啦,應該注意處理函數的返回值,上次就被師傅說了一次。

 

知識點:

  • closesocket函數的作用和socket函數的作用相反,釋放為套接字分配的資源。
  • WSACleanup函數和WSAStartup函數的作用相反,終止對套接字庫的使用。
  • int main(int argc, char *argv[] ):argc是命令行參數總個數,argv[0] 是程序名,argv[1] 是參數1, argv[i] 是參數i.

 原文鏈接:http://blog.csdn.net/stpeace/article/category/1300762


免責聲明!

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



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