windows 套接編程

來源:互聯網
上載者:User

標籤:style   c   tar   a   使用   資料   

        網路在我們生活中日益頻繁。網路化已經成為了一個社會發展的趨勢。winsocket 是一種常用的網路編程方法。

首先我們來講講電腦網路的基本知識。首先是IP地址,在網路中每個主機都有一個IP地址。(一個主機可以有多個IP,但是在每個網路裡面每個主機都必須有唯一的一個IP,比如說你的電腦有兩個IP一個為192.168.1.34 另一個為192.168.2.34   這說明了這個主機在兩個點1網段裡。也在點2網段裡面   1網段上電腦可以找192.168.1.34,2網段上的電腦是找不到192.168.1.34的)網路相當於一個社群,你相當於主機,你在A社群叫xx,在b社群裡面你可能叫yy。相當於你在一個社群中有了一個身份證了,別人可以通過這個"身份證"來找到你。然後在來看看協議。所謂的協議都是一寫通訊規則。其實我的漢語,英語都是協議,他們用來處理人與人交流的協議,而TCP/IP,UDP/IP都是用來在電腦在網路上的交流的協議。連接埠的概念。當主機A通過網路把資料發到B主機上,B主機裡面有很多個進程,到底是哪個進程在接受資料呢?所以我們要給每個進程分配一個連接埠號碼。連接埠號碼 對應進程。tcp/ip編程對應著用戶端和伺服器端。伺服器端提供服務。用戶端請求服務。所以服務端是一個被動的過程。用戶端是一個主動的過程。服務端程式的流程是這樣。初始網路通訊協定WSAStartup,建立(socket)socket ,綁定(bind)socket,綁定的時候用的原生sockaddr(這個記錄的是原生IP和連接埠號碼),其實是將socket綁定到原生IP和連接埠上,監聽(listen)是將socket設定為監聽模式,用於監聽網路。接受(accept)當網路上有用戶端要求服務的時候,接受客戶的請求,返回一個建立本次服務的通訊端socketconnet,並用一個sockaddr 變數記錄下客戶的IP和連接埠。然後是收發資料。接收資料時recv,該函數的參數中通訊端的是本次串連建立的socketconnet。發送資料 是send。該函數的一個參數是本次串連的通訊端socketconnet。最後關閉socket。

     對於用戶端來說:用戶端是一個主動的過程。他的流程是 1建立socket和SOCKADDR_IN svr。 svr 用來記錄服務的IP和連接埠號碼。2想伺服器發送串連請求,用戶端是不需要綁定原生,他是建立一個串連,使用connet函數,就想你去銀行辦理業務,你不要常年呆在銀行,只要你要辦理業務的時候去一次就行了。你這去一次就是一次串連請求。3串連完成之後,我們就可以建立聯絡了  收發資料。最後關閉socket。

    UDP協議傳輸的時候,是不建立串連的,所以的可靠性是要低於TCP的。UDP協議的伺服器端程式流程是這樣的:1建立socket和本地SOCKADDR SVR;2綁定(bind)將socket綁定到本地的ip和連接埠上。3建立用戶端的sockaddr client用來記錄用戶端資料,接收資料。recvfrom 。用戶端的流程 是建立socket和服務端的sockaddr,發送資料,接受資料。


      不管是什麼協議。1 伺服器都是要將原生socketaddr 和socket綁定。

                                     2收發資料的時候都是要知道對方的sockaddr。用戶端都是通過事先定義的。而服務端是不知道什麼樣客戶要申請服務的,所以伺服器端都是在互動得到用戶端的sockaddr。tcp 伺服器端是接受串連的時候,記錄下這次串連的socketconnet,而udp 沒有建立串連,是在接受的時候(recvfrom)。

                                     3 udp即時性好,可靠性差,tcp即時性差,可靠性好。

                                     







相關文章

聯繫我們

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