1. 程式人生 > >DEV C++中Socket網路程式設計

DEV C++中Socket網路程式設計

Dev-C++是一個小巧開源的C/C++整合開發環境,對於大部分的Linux函式,都可以在引用標頭檔案後直接呼叫,但開發socket網路程式卻要多做一些工作。

新增 標頭檔案不可以。

新增  #pragma    comment(lib,"ws2_32.lib")  仍然報錯

  1. 在程式中引用標頭檔案

       #include <<strong>winsock2.h>

   2. 在使用socket介面前需要呼叫WSAStarup函式進行Windows下網路介面的啟動,程式碼示例如下:

    WSADATA wsd;

    if((status=WSAStartup(MAKEWORD(2,2),&wsd))!=0)
    {
        perror( "wsastartup()   failed: ");
        exit(1);
    }

   3. 在程式退出前需要呼叫WSACleanup進行資源的清理,程式碼示例如下:

    WSACleanup();

 4. 編譯時必須連結winsock的庫ws2_32,連結庫的選項在:“工具->編譯選項下”,如圖所示:

Dev-C++下編寫socket網路程式

  5. 最後編譯連結後,程式即可正確執行。

  說明:

       WSAStarup,即WSA(Windows SocKNDs Asynchronous,Windows套接字非同步)的啟動命令。是Windows下的網路程式設計介面軟體 Winsock1 或 Winsock2 裡面的一個命令(Ps:Winsock 是由Unix下的BSD Socket發展而來,是一個與網路協議無關的程式設計介面)。
  為了在應用程式當中呼叫任何一個Winsock API函式,首先第一件事情就是必須通過WSAStartup函式完成對Winsock服務的初始化,因此需要呼叫WSAStartup函式。使用Socket的程式在使用Socket之前必須呼叫WSAStartup函式。該函式的第一個引數指明程式請求使用的Socket版本,其中高位位元組指明副版本、低位位元組指明主版本;作業系統利用第二個引數返回請求的Socket的版本資訊。
    當一個應用程式呼叫WSAStartup函式時,作業系統根據請求的Socket版本來搜尋相應的Socket庫,然後繫結找到的Socket庫到該應用程式中。以後應用程式就可以呼叫所請求的Socket庫中的其它Socket函數了。