python教學專欄介紹socket的通訊方法
#socket的介紹
socket又稱“套接字”,socket會透過udp/tcp協定來發送數據,用來實現兩台機器的簡單通訊。注意:如果要用socket實作兩台機器的簡單通信,請先確保這兩台機器連入同一個局部網路。當然,socket也可以實現一台機器的通信,你只需要把連接對象ip設定為127.0.0.1,也就是本機ip。
實例
這裡只展示部分實用的函數。#描述 | |
---|---|
建立一個套接字 | |
綁定到一個ip和連接埠上,傳入參數為元組 | |
接受資料 | |
傳送資料 | |
關閉套接字 | |
連接到一個ip和連接埠上 |
socket.accept()
socket服務端
讓我們建立一個叫做socket_server.py,然後輸入以下程式碼:
import socket server = socket.socket()server.bind(('0.0.0.0',80))server.listen()sock,addr = server.accept()data = ""while True: tmp_data = sock.recv(1024) if tmp_data: data += tmp_data.decode("utf8") else: breakprint('%s发送的内容:%s'%(addr[0],data))sock.close()
這裡我們建立了一個套接字,綁定到了0.0.在0.0:80的位址上,這個位址也可以改成我們本機的名稱。然後我們就開始監聽模式,使用者連線之後,就開始接受資料(注意:在接受資料之前要進行utf8解碼)。 socket客戶端
創建完socket_server.py之後,我們就能建立我們的客戶端了。讓我們建立一個叫做socket_client.py的文件,然後輸入以下程式碼:
import socket client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()
這裡我們就只講以下connect和send這兩個函數。 connect函數我們傳入了個元組,當然列表也行。第一個元素需要是連接的物件ip,第二個就是連接埠。連接完之後,我們就是用send函數來進行發送訊息,在發送之前,我們需要先把內容編碼為utf8類型。
對一個網站發送資料#########我們建立一個叫socket_website.py的文件,輸入以下程式碼:###
import socket s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()
以上是python socket 完成簡單的通信的詳細內容。更多資訊請關注PHP中文網其他相關文章!