Windows平台VC++ 6.0 下的網路編程學習 - 簡單的測試winsock.h標頭檔

來源:互聯網
上載者:User

標籤:參數   ==   c++   sockets   前端   處理   錯誤碼   ada   version   

        最近學習資料結構和演算法學得有點累了(貌似也沒那麼累...)...找了本網路編程翻了翻當做打一個小基礎吧,打算一邊繼續學習資料結構一邊也看看網路編程相關的...

        簡單的第一次嘗試,就大致梳理一下看書+自己理解的東西。

            1.首先是對Winsock的一點介紹:Winsock是一種標準的API(API),主要用於網路中的資料通訊,它允許兩個應用程式在同一台機器上或通過網路相互連信。需要注意的是Winsock和協議無關,使用Winsock編程介面,應用程式可通過普通網路通訊協定如:TCP/IP(網路通訊協議)或IPX(互連網資料包交換協議)協議建立通訊。

            2.然後是VC++6.0下網路編程的工程項目的基本建立,先貼一段代碼:

#include <winsock2.h>#include <stdio.h>void main(void){    WSADATA    wsaData;//注釋1    int Ret;    //初始化winsock版本2.2    if((Ret = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)    {        //如果winsock沒有載入,調用WSAStartup()函數將會返回一個SOCKET_ERROR的錯誤碼        printf("WSAStartup failed with error %d\n", Ret);        return ;    }    if(WSACleanup() == SOCKET_ERROR)    {  //WSACleanup()函數可以釋放所有由winsock分配的資源,並取消這個應用程式掛起的winsock調用        printf("WSACleanup failed with error %d\n", WSAGetLastError());    }}

           因為該程式的主函數入口是main(),所以建立工程時應選擇win32 Console Application,然後我們編寫的是winsock2.h的應用程式,需要連結到WS2_32.LIB庫;如果是winsock.h時,需要使用WSOCK32.LIB;如果是MSWSOCK.H(這個是用於微軟專用編程擴充的)時,還需連結MSWSOCK.DLL。(以上除DLL檔案外都在VC++6.0 中的 project -> setting -> link 中的 Object/library modules:欄中添加即可)

   上面代碼中有個注釋1,稍微解釋一下:

       初始化winsock時(也就是調用函數WSAStartup()載入winsock)用與載入的版本有關的資訊和一個指向WSADATA結構的指標來填充該結構:

typedef struct WSAData {    WORD            wVersion;    WORD            wHighVersion;    char            szDescription[WSADESCRIPTION_LEN + 1];    char            szSystemStatus[WSASYS_STATUS_LEN + 1];    unsigned short  iMaxSockets;    unsigned short  iMaxUdpDg;    char FAR *      lpVendorInfo;}WSADATA, * LPWSADATA;

       我們不用太在意這個結構的具體細節,但至少應該知道怎麼調用函數來填充它。如果想知道WSAData結構體中各個成員的含義和作用可以去看這本書《windows網路編程》第一章前面有很詳細的解釋。

  最後,第一次的網路編程學習就先總結成這樣了,我主要就是用一段錯誤處理的代碼來測試標頭檔和瞭解如何開始編寫網路編程的程式,有了簡單的入門會清晰很多。個人感覺這篇總結還是有些許收穫的。(吐槽一下個人學前端和windows編程時的感覺,學了幾天,進步是很快,但一段時間不碰,都不想去碰了...導致html好多標籤的屬性和參數都忘了,windows編程中部分函數的使用細節也可能忘了...淺嘗輒止)

 

Windows平台VC++ 6.0 下的網路編程學習 - 簡單的測試winsock.h標頭檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.