免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2221 | 回复: 7
打印 上一主题 下一主题

关于TCP网络 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-12 16:04 |只看该作者 |倒序浏览
大家好!
    我在写一个TCP网络client端程序时,遇到一个问题,请大家帮帮忙。
   
     Client端为Linux,Server端为Windows,在Client与Server建立连接之后,Client开始发送数据,发送完后,Server端发送“接收完成”,如此重复。但重复5、6次时,Client的程序就不能再次发送数据。
     我在程序中的操作,一直没有关闭任何一端Socket。我在程序中加入一些Printf(),希望知道程序是停留在什么地方导致程序不能发送数据。send()函数后的printf(),在执行了5、6次后,不再执行,程序停留在send()。

     请问,这个问题为什么会产生,该怎样解决呢?

论坛徽章:
0
2 [报告]
发表于 2010-08-12 17:21 |只看该作者
这个很可能是管道被写满了,,,你的客户端没有接收到数据吧,,,打印验证一下接收到了吗,,,windows和linux的换行有差别,请注意了,,,good luck

论坛徽章:
0
3 [报告]
发表于 2010-08-12 17:24 |只看该作者
本帖最后由 再也不回头 于 2010-08-12 17:31 编辑

回复 2# raindy1234


    Server端没有接收到数据,Client端也没能把数据发送出去。Server端接收完数据后发送的数据,Client端可以接收到。
    是不是要清空管道,管道怎样能清空呢?

论坛徽章:
0
4 [报告]
发表于 2010-08-13 08:45 |只看该作者
不永清空的,只要一段发数据另一端可以接收到的话就可以的,,,

论坛徽章:
0
5 [报告]
发表于 2010-08-13 08:47 |只看该作者
Client端可以接收到就会删除管道中的接收到的相关数据,(相当于队列)

论坛徽章:
0
6 [报告]
发表于 2010-08-13 14:56 |只看该作者
本帖最后由 再也不回头 于 2010-08-13 15:10 编辑

回复 5# 0vk0


    那为什么Client发送了5、6次后,就会出现Client端程序不能发送的现象呢?
    Server端在接收完一次数据后就会发送一个“recv end”,Client接收到了“recv end”后继续发送。在Client端没有出现问题之前,Client端每发送一次数据,Server端都将“recv end”发送到Client,而且在Client端打印出了接收到的数据“recv end”。

一下是Client端打印出的信息

read length:61440     //读取文件长度
send length:61440    //发送数据长度
recv end                  //Server端发送的数据
read length:61440
send length:61440
recv end
read length:61440
send length:61440
recv end
read length:61440
send length:61440
recv end
read length:61440
send length:61440
recv end
read length:61440
send length:61440
recv end
read length:61440
执行到这里的时候程序停止,不再执行

论坛徽章:
0
7 [报告]
发表于 2010-08-18 18:35 |只看该作者
查看你的buffer相关的吧。。。。。。。。。。

论坛徽章:
0
8 [报告]
发表于 2010-08-19 13:32 |只看该作者
不能发送数据,这个说法太含糊。
如果send错的话,看下error信息。结合gdb跟踪下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP