套接字
一、網絡中如何進行通信?
首要解決的問題是如何標識一個進程,否則通信無從談起。
其實TCP、IP協議族已經幫我們解決了這個問題,網絡層的IP地址可以唯一標識網絡中的主機,傳輸層的“協議+端口”可以唯一標識主機中的應用程序(進行)。
二、套接字
socket(簡稱套接字)是進程間通信的一種方式。它與其他進程間通信的一個主要不同是,它能實現不同主機間的進程通信,我們網絡上各種各樣的服務大多是基于socket來完成通信的。例如我們每天瀏覽網頁、qq聊天、收發email等等。
socket方法有兩個參數:
① address family:可以選擇
AF_INET
(用于internet進程間通信)或者
AF_UNIX
(用于同一臺機器進程間通信),實際工作中常用AF_INET;② Type:套接字類型,可以是
SOCK_STREAM
(流式套接字,主要用于TCP協議)或者
SOCK_DGRAM
(數據包套接字,主要用于UDP協議)
創建套接字:
UDP協議
一、UDP協議介紹
UDP----用戶數據報協議,是一個無連接的簡單地面向數據報的傳輸層協議。無連接指的是單方面的,就好比寄信和打電話,寄出去的信件可能在中途丟失,但是打電話不會,建立了連接就可以通話,沒建立連接無法傳輸信息。
UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證他們能到達目的地。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個鏈接,且沒有超時重發等機制,故而傳輸速度很快。
UDP是一種面向無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網絡上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能保證的。
特點(了解):UDP是面向無連接的通訊協議,UDP數據包括目的端口號和源端口號信息,由于通訊不需要連接,所以可以實現廣播發送。UDP傳輸數據時有大小限制,每個被傳輸的數據報必須限定在64KB之內。UDP是一個不可靠的協議,發送方所發送的數據報并不一定以相同的次序到達接收方。
適用情況:
UDP是面向消息的協議,通信時不需要建立連接,數據的傳輸自然是不可靠的,UDP一般用于多點通信和實時的數據業務,比如:
語音廣播
TFTP(簡單文件傳送)
SNMP(簡單網絡管理協議)
RIP(路由信息協議,如報告股票市場,航空信息)
DNS(域名解析)
注重速度流暢udp操作簡單,而且僅需要較少的監護,因此通常用于局域網高可靠性的分散系統中clientserver應用程序。例如視頻會議系統,并不要求音頻視頻數據絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會更合理一些。
二、網絡調試助手
接下來我們需要借助網絡測試小助手來完成套接字的創建使用過程:
三、示例
udp網絡程序-發送數據:①創建套接字;②發送、接收數據;③關閉套接字。
我們點擊運行程序之后,先不要輸入信息,打開網絡調試助手,進行連接。
輸入你好!我們就可以在網絡測試助手上收到消息。
這次在網絡測試助手上發送消息:你是GG還是MM?
這是兩次print不同的表達結果。
其實,使用from socket import *會在創建套接字的時候使代碼顯得更加簡潔凝練,因為它導入了所有功能。
四、UDP網絡通信過程
和快遞原理是差不多的。
審核編輯:劉清
-
Socket
+關注
關注
0文章
212瀏覽量
34737 -
SNMP
+關注
關注
0文章
86瀏覽量
29759 -
UDP協議
+關注
關注
0文章
69瀏覽量
12715 -
TCPIP協議
+關注
關注
0文章
35瀏覽量
11977
發布評論請先 登錄
相關推薦
評論