[d]httpserver linux 环境不可用

2到20个英文 2012-09-10 10:34:04
报文格式

<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>xx</a>
</root>


写了一个ThreadingHTTPServer server程序,do_POST 在接收数据的时候利用

代码一:
self.request.recv(1024)

windows正常
linux suse 10 99%接收不到数据,有那么一次成功
代码二:
self.rfile.readline()

windows正常
linux suse 10环境下,从打印日志,最后一行数据读取不到</root>
,程序无法执行下去。

望各位指点,谢谢!
--------------------------
Double行动:
原帖分数:60
...全文
185 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
2到20个英文 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
能否把完整代码贴出来?
[/Quote]
信息安全,不能贴代码哦
2到20个英文 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
TCP字节流, 任何假设都是错误.

这里你假设你一次可以读完, 所以错了.
[/Quote]

谢谢,这个地方self.request.recv(1024),我是用循环来读取的,我的问题是?
bugs2k 2012-09-11
  • 打赏
  • 举报
回复
能否把完整代码贴出来?
2到20个英文 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
HTTP头中有一个Content-Length字段,里面记录了正文的长度
[/Quote]
恩,是的,可以通过头获取到,但解决不了我的问题,呵呵
2到20个英文 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
同样原理, 你假设发送xml时都可以一次性完成, 这个假设是错误的, 请检查返回值, 它才是真正写出的字节数.

学Python不意味着就不需要学基础, APUE, UNP ,TCP/IP都是需要学习的.
[/Quote]
恩,谢谢你,有时间好好看看
2到20个英文 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
HTTP头中有一个Content-Length字段,里面记录了正文的长度
[/Quote]
是的,windows上是用的self.headers.get('Content-Length', "")这个获取长度,windows没有问题

问题在linux 上,linux recv 函数被阻塞了,通过抓包,数据有发送出去。
qq120848369 2012-09-11
  • 打赏
  • 举报
回复
同样原理, 你假设发送xml时都可以一次性完成, 这个假设是错误的, 请检查返回值, 它才是真正写出的字节数.

学Python不意味着就不需要学基础, APUE, UNP ,TCP/IP都是需要学习的.
jiuchang 2012-09-11
  • 打赏
  • 举报
回复
HTTP头中有一个Content-Length字段,里面记录了正文的长度
2到20个英文 2012-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
貌似 </root> 后面没有回车换行造成的
[/Quote]
谢谢,开始我也是这么想,在测试中,clent 后面加上\n ,对于readline方法没有问题,
但我们是提供服务给其他人,我们要求在后面加上\n,不合理,readline 方法太慢

如果能用self.request.recv(1024),把这个问题解决就好了
会不会是跟操作系统缓冲区有关系呢?
bugs2k 2012-09-10
  • 打赏
  • 举报
回复
貌似 </root> 后面没有回车换行造成的
qq120848369 2012-09-10
  • 打赏
  • 举报
回复
TCP字节流, 任何假设都是错误.

这里你假设你一次可以读完, 所以错了.

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧