Python----socket编程
socket
一、socket是什么?
socket 通常也稱為“套接字”,用于描述 IP 地址和端口,是一個通訊鏈的句柄。應用程序通常通過 “套接字”向網絡發出請求或者應答網絡請求。說白了,就是一種通訊機制。它類似于公司的電話客服部門,你打電話的時候,那邊會分配一個人回答你的問題,客服部門就相當于 socket 的服務器端了,打電話的人相當于客戶端了,在和你通話結束前,如果有人在想找和你通話的哪個客服人員,是不可能的,因為你在和他通話,當
套接字分類:1、基于文件類型的套接字家族;套接字家族的名字:AF_UNIX
2、基于網絡類型的套接字家族;套接字家族的名字:AF_INET
二、套接字:通信端點
1、套接字
套接字是計算機網絡數據結構,它體現了上節中所描述的“通信端點”的概念。在任何類型的通信開始之前,網絡應用程序必須創建套接字。
有兩種類型的套接字:基于文件和面向網絡的。
2、套接字地址:主機-端口對
如果一個套接字像一個電話插孔-允許通信的一些基礎設施,那么主機名和端口號就像區號和電話號碼的組合。有效的端口號范圍為0-65535(小于1024的端口號預留給了系統)
3、面向連接的套接字和與無連接的套接字
面向連接,在進行通信之前必須建立一個連接。實現這種連接類型主要協議是TCP(傳輸控制協議)
無連接,在通信之前并不需要建立連接。主要協議是UDP(用戶數據報協議)
三、socket()函數
Python 中,我們用 socket()函數來創建套接字,語法格式如下:
socket.socket([family[, type[, proto]]])參數
family: 套接字家族可以使AF_UNIX或者AF_INET
type: 套接字類型可以根據是面向連接的還是非連接分為SOCK_STREAM或SOCK_DGRAM
protocol: 一般不填默認為0.
四、Socket 對象(內建)方法
五、簡單實例
服務端
我們使用 socket 模塊的 socket 函數來創建一個 socket 對象。socket 對象可以通過調用其他函數來設置一個 socket 服務。
現在我們可以通過調用 bind(hostname, port) 函數來指定服務的 port(端口)。
接著,我們調用 socket 對象的 accept 方法。該方法等待客戶端的連接,并返回 connection 對象,表示已連接到客戶端。
完整代碼如下:
客戶端
接下來我們寫一個簡單的客戶端實例連接到以上創建的服務。端口號為 12345。
socket.connect(hosname, port ) 方法打開一個 TCP 連接到主機為 hostname 端口為 port 的服務商。連接后我們就可以從服務端獲取數據,記住,操作完成后需要關閉連接。
完整代碼如下:
現在我們打開兩個終端,第一個終端執行 server.py 文件:
$ python server.py第二個終端執行 client.py 文件:
$ python client.py這時我們再打開第一個終端,就會看到有以下信息輸出:
連接地址: ('192.168.0.118', 62461)總結
以上是生活随笔為你收集整理的Python----socket编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS文件信息收集工具-LinkFinde
- 下一篇: Autorize插件的使用方法