日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...

發布時間:2023/12/10 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

忙了兩天,繼續更文!希望多多支持。

套接字

套接字是一種具有之前所說的"通訊端點"概念的計算機網絡數據結構。網絡化的應用程序在開始任何通訊之前都必需要創建套接字。

套接字有三種:

1、 AF_UNIX(在 POSIX1.g 標準中也叫 AF_LOCAL),表示"地址家族:UNIX",是指在unix系統中使用的 套接字,這些套接字是基于文件的。所以,它們的底層結構是由文件系統來支持的。

2、 AF_INET或叫"地址家族:Internet"。它是基于網絡的,還有一種地址家族 AF_INET6 被用于網際協議第 6 版(IPv6)尋址上。

3、 AF_NETLINK:Python 2.5 中加入了一種 Linux 套接字的支持:AF_NETLINK(無連接)套接字家族讓用戶代碼與內核代碼之間的 IPC 可以使用標準 BSD 套接字接口。

Python 只支持 AF_UNIX,AF_NETLINK,和 AF_INET 家族。我們平時使用的大部分都是基于網絡的,所以,主要用AF_INET。

1、 面向連接與無連接

有過網絡基礎的人都會了解TCP協議和UDP協議,他倆是不同的。主要區別就是TCP是基于面向連接的,而UDP是無連接的。

面向連接

即在通訊之前一定要建立一條連接,就像跟朋友打電話時那樣。TCP協議在和別人通信的時候首先要進行三次握手和建立連接,才能繼續通信。

要創建 TCP 套接字就得在創建的時候,指定套接字的類型為 SOCK_STREAM。TCP 套接字采用 SOCK_STREAM 這個名字,表達了它做為流套接字的特點。由于這些套接字使用 Internet 協議(IP)來查找網絡中的主機,這樣形成的整個系統,一般會由這兩個協議(TCP 和 IP)來提及,即 TCP/IP。

無連接

無連接和面向連接正好相反,它不需要先和別人建立連接,而是直接和別人通訊,就像我直接對你喊話一樣。這樣不能保證通訊的可靠性和數據完整性。這種協議主要用在一些在線視頻傳輸方面,因為視頻中丟一點信息對觀看影響不大。

實現這種連接的主要協議就是用戶數據報協議(即 UDP)。要創建 UDP 套接字在創建的時候,指定套接字類型為 SOCK_DGRAM。S由于這些套接字使用 Internet 協議來查找網絡中的主機,這樣形成的整個系統,一般會由這兩個協議(UDP 和 IP)來提及,即 UDP/IP。

socket()模塊函數

在python中,我們主要調用socket()函數來進行 網絡編程。

socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。這幾個常量的意義可以參考之前的解釋。protocol 一般不填,默認值為 0。

創建一個 TCP/IP 的套接字,你要這樣調用 socket.socket():

同樣地,創建一個 UDP/IP 的套接字,你要這樣:

python套接字函數:

TCP編程:

客戶端和服務器建立連接流程圖如下:

TCP服務器編程步驟:

如果有多個客戶端要連接服務器,服務器端可以創建線程來與客戶端建立連接,下一節將會將。

示例代碼:

TCP客戶端編程

示例代碼:

運行結果:

UDP編程:

Udp相比TCP就簡單多了

UDP服務器編程:

示例代碼:

UDP客戶端編程:

運行結果:

下一篇介紹python服務器與客戶端多線程編程,歡迎關注。

總結

以上是生活随笔為你收集整理的python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。