Python socket的客户端
生活随笔
收集整理的這篇文章主要介紹了
Python socket的客户端
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
做一個socket客戶端
1、聲明一個實例
2、綁定端口號和地址
3、循環發送和接收響應
其中要注意粘包的產生,為了防止粘包的產生,應該在服務器端先測出要發送信息的大小,
然后發送響應至客戶端,等到服務器上一條信息發送完畢,客戶再響應準備好接收下一條信息
這樣就不會有粘包的產生
import socket
client = socket.socket()
client.connect(('localhost',9999))
while True:
cmd = input(">>:").strip()
if len(cmd) == 0:continue
client.send(cmd.encode("utf-8"))
cmd_res_size = client.recv(1024)
print("命令結果大小:",cmd_res_size)
client.send("我準備好了".encode("utf-8")) #響應服務器端發送請求,為防止粘包的產生
received_size = 0
received_data =b''
while received_size < int(cmd_res_size.decode()):
data = client.recv(1024)
received_size += len(data)
received_data += data
else:
print("cmd res receive done...",received_size)
print(received_data.decode())
client.close()
1、聲明一個實例
2、綁定端口號和地址
3、循環發送和接收響應
其中要注意粘包的產生,為了防止粘包的產生,應該在服務器端先測出要發送信息的大小,
然后發送響應至客戶端,等到服務器上一條信息發送完畢,客戶再響應準備好接收下一條信息
這樣就不會有粘包的產生
import socket
client = socket.socket()
client.connect(('localhost',9999))
while True:
cmd = input(">>:").strip()
if len(cmd) == 0:continue
client.send(cmd.encode("utf-8"))
cmd_res_size = client.recv(1024)
print("命令結果大小:",cmd_res_size)
client.send("我準備好了".encode("utf-8")) #響應服務器端發送請求,為防止粘包的產生
received_size = 0
received_data =b''
while received_size < int(cmd_res_size.decode()):
data = client.recv(1024)
received_size += len(data)
received_data += data
else:
print("cmd res receive done...",received_size)
print(received_data.decode())
client.close()
轉載于:https://www.cnblogs.com/Benedict/p/10361167.html
總結
以上是生活随笔為你收集整理的Python socket的客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每周工作4天半可行吗?人社部回应:不宜在
- 下一篇: 2020 年开发者生态报告:Python