• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
桐原
博客园    首页    新随笔    联系   管理    订阅  订阅

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()
posted @ 2019-02-11 11:05  桐原  阅读(2898)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3