Window網路編程之Winsock(一)起步

來源:互聯網
上載者:User

Window網路編程之Winsock(一)

Winsock的標頭檔可庫

Winsock有兩個主要版本,即Winsock 1和Winsock 2,兩者都能在除了Windows CE外(Winsock CE 只支援Winsock 1)的所有Window平台上運行。開發Window網路程式時,

把WINSOCK2。H包含到應用程式中,對應的串連庫是WS2_32.lib庫。代碼如下:

#include <winsock2.h>

#pragma comment (lib,"ws2_32.lib")

開始初始化Winsock庫,調用WSAstartup(…)

int WSAStartup(

  WORD wVersionRequested,   //Winsock庫的版本號碼,可以用MAKEWOR(2,2)

  LPWSADATA lpWSAData      //一個載入庫版本的有關資訊

);

在使用Winsock介面編好程式後應該調用WSACleanup函數,這個函數主要釋放所有由Winsock分配的資源,並取消這個應用程式掛起的Winsock調用。

int WSACleanup(void);
現在就可以寫個簡單的Winsock網路程式架構了:

#include <cstdlib>

#include <iostream>

#include <Winsock2.h>

#pragma comment(lib,"ws2_32.lib")

using namespace std;

 

int main(int argc, char *argv[])

{

    WSADATA wsaData;

    //初始化Winsock版本2.2

    int ret = WSAStartup(MAKEWORD(2,2),&wsaData);

    if(ret != 0)

    {

        //注意:因為Winsock沒有載入,所以我們不能使用WSAGetLastError

       //來確定導致故障的特定錯誤。我們只能根據返回狀態判斷

       cout<<"WSAStartup failed with error "<<ret<<endl;

       WSACleanup();

       return 0;

    }

    //這裡就是我們建立socket要串連或者監聽代碼了

    //......

    //如果程式結束調用 WSACleanup

    WSACleanup();

    system("PAUSE");

    return EXIT_SUCCESS;

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.