论坛风格切换切换到宽版
  • 952阅读
  • 2回复

[问题求助][C语言]socket send成功返回但是对面未能成功收到。 [复制链接]

上一主题 下一主题
离线neverbye.
 
发帖
2058
C币
-60785
威望
381
贡献值
1
银元
0
铜钱
4567
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我是看的一开源产品源代码..,服务器客户端模型,C语言编写。            杀毒

问题是这样的,服务端在处理完请.求后返回一个确认字串给客户端(几个字节),而客户端读取服务端的.返回失败,检测到根本就没.有读到内容,从而引发了一些其它的问题。.

通过检查服务端,我发现返回的地方就是一个简..单的send函数,而且通过检查发现返回值正常。           女人

我知道send只是.将内容copy到socket对应.的缓冲区,只要copy成功就返回成功。所以问题应该在后面,不过现在暂时不知道如何去侦测。投资

不知道有没有兄弟有什么看法,还请指.教。    健康

多谢。

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线pre8.
发帖
2069
C币
-60870
威望
354
贡献值
1
银元
-2
铜钱
4484
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[C语言]socket
在客户端和服务器端分别抓报看看

发帖
1925
C币
-152776
威望
343
贡献值
1
银元
-2
铜钱
4341
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[C语言]socket


QUOTE:原帖由 emmoblin 于 2009-7-8 23:20 发表
在客户端和服务器端分别抓报看看



谢谢提示,用tcpdump抓包,与服务器和客户端的调试数据做对比,情况如下。

出错是在第446284次操作,从抓到的包来看,只看到这一条的客户端请求,并没有发现有服务器返回的包。

所以判断应该是服务器端返回没有成功,也就是上面说的,它只是将返回内容copy到了socket的缓冲区,但是最终的发送失败了。

然而服务器的错误追踪到send之后,也就是说send成功后内核在输出socket缓冲区的时候出错了。这个东西。。。。。有点不知道如何是好了。
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个