Python中文
首页
教程
问答
标签
搜索
登录
注册
Python套接字接收-传入的数据包总是具有不同的大小
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用SocketServer模块作为TCP服务器。 我在这里遇到了<code>recv()</code>函数的一些问题,因为传入的数据包总是有不同的大小,所以如果我指定<code>recv(1024)</code>(我尝试使用一个更大的值和更小的值),它会在2或3个请求后卡住,因为数据包长度会更小(我想),然后服务器会卡住,直到超时。</p> <pre><code>class Test(SocketServer.BaseRequestHandler): def handle(self): print "From:", self.client_address while True: data = self.request.recv(1024) if not data: break if data[4] == "\x20": self.request.sendall("hello") if data[4] == "\x21": self.request.sendall("bye") else: print "unknow packet" self.request.close() print "Disconnected", self.client_address launch = SocketServer.ThreadingTCPServer(('', int(sys.argv[1])),Test) launch.allow_reuse_address= True; launch.serve_forever() </code></pre> <p>如果客户机通过同一个源端口发送多个请求,但服务器被卡住,任何帮助都将非常感谢,谢谢!</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您也可以使用<code>recv(x_bytes, socket.MSG_WAITALL)</code>,它似乎只在Unix上工作,并将准确返回<code>x_bytes</code>。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python中两个字典的交集
1 回答
python中两个字符串上的异或操作数?
6 回答
Python中两个字符串中的类似句子
9 回答
Python中两个字符串之间的Hamming距离
4 回答
python中两个字符串之间的匹配模式
7 回答
python中两个字符串之间的按位或
2 回答
python中两个字符串之间的数据(字节)切片
4 回答
python中两个字符串之间的模式
1 回答
python中两个字符串作为子字符串的区别
1 回答
Python中两个字符串元组的比较
2 回答
Python中两个字符串列表中的公共字符串
7 回答
python中两个字符串的Anagram测试
3 回答
Python中两个字符串的正则匹配
7 回答
python中两个字符串的笛卡尔乘积
9 回答
Python中两个字符串相似性的比较
3 回答
python中两个字符串语义相似度的求法
5 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
1 回答
Python中两个对数方程之间的插值和平滑数据
1 回答
Python中两个对象之间的And/Or运算符
5 回答
python中两个嵌套字典中相似键的和值
10 回答