Python socket的客户端
2024-10-10 16:57:05
做一个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()
最新文章
- JsonPropertyOrder无法为DTO对象进行属性排序
- python图片添加水印(转载)
- POJ 3624 Charm Bracelet(01背包)
- elasticsearch nested查询
- JSON 之 SuperObject(3): 访问
- MySQL在ROW模式下通过binlog提取SQL语句
- 【win8技巧】去掉Win8导航菜单下面的这台电脑其他的文件夹
- struct2(四)编写Struct2 的Action
- [Android开发常见问题-12] Android开发中debug.keystore如何使用。
- zookeeper C API
- eclipse 使 用Ctrl+鼠标左键进入mapper.xml文件的方法
- 数据库mysql大全(高级版)
- AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造
- Vue项目的打包
- 【Linux命令】top命令
- chrome 下 input[file] 元素cursor设置pointer不生效的解决
- 《Inside C#》笔记(二) 初识C#
- Linux期中总结
- c++ 静态变量报错 undefined reference to static members
- telnet强制中断登录
热门文章
- JavaScript中var、let和const的区别(转载)
- Tomcat Getshell
- JS变量重复声明以及忽略var 声明的问题及其背后的原理
- port bridge enable命令导致的环路
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- day9面向对象,多线程2
- 简单的3d变换
- VS2008中 VB 报错 检索 COM 类工厂中 CLSID 为 {28E68F9A-8D75-11D1-8DC3-3C302A000000} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
- FC105 FC106 Scale功能块使用说明
- React(一)使用脚手架创建React项目