windows下的socket網路編程(入門級)

來源:互聯網
上載者:User

標籤:ref   需要   div   word   ros   虛擬機器   ndt   ges   串連   

  • windows下的socket網路編程
  • clinet.c 用戶端
  • server.c 伺服器端
  • UDP通訊的實現
  • 代碼如下

已經很久沒有在windows下編程了,這次因為需要做一個跨平台的網路程式,就先寫了個簡單的winSocket網路通訊的例子,以便以後用到的時候有個參考。

windows下使用winsock編程與linux/unix的區別在於windows下需要先有一個初始化的操作,結束的時候需要一個清理的操作。還有windows下編譯的時候需要串連ws32_lib庫。

大致過程如下

  • 1、初始化

    /*載入Winsock DLL*/
    WSADATA wsd;
    if (WSAStartup(MAKEWORD(2 , 2) , &wsd) != 0) {
    printf("Winsock 初始化失敗!\n");
    return 1;
    }

  • 2、socket相關函數調用

    socket(...)
    bind(...)
    listen(...)
    connect(...)
    accept(...)
    send/sendto
    recv/recvfrom

  • 3、清理
    WSACleanup();

clinet.c 用戶端

用戶端的流程很簡單。

  • 1、先是使用socket函數產生一個開啟的socket檔案描述符。
  • 2、使用connect函數去串連服務端
  • 3、使用read/recv等讀檔案函數從服務端接收資料,使用write/send等寫檔案的函數向服務端發送資料

上面是典型的TCP編程流程,如果是UDP的話不需要connect去串連服務端直接使用sendto函數來發送資料,使用recvfrom接收來自伺服器的資料

server.c 伺服器端

伺服器端的流程比用戶端稍微複雜一點

  • 1、調用socket開啟一個socket控制代碼
  • 2、調用bind來綁定socket控制代碼到一個網口的某個連接埠
  • 3、調用listen來設定(啟用)監聽
  • 4、調用accept來等待用戶端的串連

上面是典型的TCP編程流程,如果是UDP的,那麼不需要3,4這兩部,直接使用recvfrom來接收用戶端發過來的資料即可。

UDP通訊的實現

我這裡沒有寫TCP的,因為都是區域網路內,就簡單的寫了個。
這裡是在虛擬機器裡面測試的,代碼見最後。

 

http://www.cnblogs.com/oloroso/p/4613296.html

windows下的socket網路編程(入門級)

相關文章

聯繫我們

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