Windows下TCP的问题

排山和倒海 2014-06-03 02:22:11
这个问题困扰实在是好久了,真的希望了解这个的人给指一条活路吧


背景:
自己实现应用层协议,说白了就是,定一个了一个网络包,包头和包尾
心跳消息,客户端发送消息给服务器发送一个短小的消息,然后服务器马上回复一个。
但是为什么,隔一段时间,客户端发送给服务器的消息,服务器可以收到,服务器返回给客户端的,客户端就收不到呢?
我知道TCP 是双通道,也就是一个通道是通的,另外一个是不通的。有知道原因的吗?
跪求啊
...全文
365 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Drren_Liu 2014-07-08
  • 打赏
  • 举报
回复
CSocket在多线程编程过程中存在使用问题,推荐原始socket
排山和倒海 2014-07-03
  • 打赏
  • 举报
回复
看了很多TCP方面的编程,貌似,大家都推荐不要用winsocket 里面MFC的系统socket的也就是 CSocket,大家都用原始的socket吧
KevinHo 2014-06-10
  • 打赏
  • 举报
回复
不是吧……客户端没有shutdown吧?
排山和倒海 2014-06-06
  • 打赏
  • 举报
回复
引用 9 楼 my3439955 的回复:
楼主的问题很可能是程序编写的问题
服务器winsocket的,IOCP的模型,但是客户端是MFC的CSocket,然后根据自己的网络协议,根据包头决定,此次接收多少数据。如果说是程序的问题,但是他是有时候出现,有时候不出现。一般是程序运行一段时间。但是有时候就是可能就很快就出现了这个情况。
  • 打赏
  • 举报
回复
楼主的问题很可能是程序编写的问题
  • 打赏
  • 举报
回复
所谓双通道,是指全双工,底层完全支持同时的收发 一个方向通一个方向不通 那叫半双工
JoeBlackzqq 2014-06-04
  • 打赏
  • 举报
回复
引用 4 楼 wangqing008 的回复:
[quote=引用 3 楼 JoeBlackzqq 的回复:] 我知道TCP 是双通道,也就是一个通道是通的,另外一个是不通的。===> 双通道是这个意思吗??
是的啊,就是这个意思,你遇到过吗?[/quote] 双通道是有两个通道,可以同时进行数据收发!
排山和倒海 2014-06-03
  • 打赏
  • 举报
回复
引用 2 楼 yunchao630 的回复:
在客户端那抓包,看看能不能收到数据。
嗯嗯,谢谢你的回答
排山和倒海 2014-06-03
  • 打赏
  • 举报
回复
引用 1 楼 ouyh12345 的回复:
先查看网卡是否收到包了 然后看客户端收到的信息的具体内容
嗯,我去试一下,只能用抓包的软件了,调试是调试不了的啊
排山和倒海 2014-06-03
  • 打赏
  • 举报
回复
引用 3 楼 JoeBlackzqq 的回复:
我知道TCP 是双通道,也就是一个通道是通的,另外一个是不通的。===> 双通道是这个意思吗??
是的啊,就是这个意思,你遇到过吗?
JoeBlackzqq 2014-06-03
  • 打赏
  • 举报
回复
我知道TCP 是双通道,也就是一个通道是通的,另外一个是不通的。===> 双通道是这个意思吗??
翅膀又硬了 2014-06-03
  • 打赏
  • 举报
回复
在客户端那抓包,看看能不能收到数据。
ouyh12345 2014-06-03
  • 打赏
  • 举报
回复
先查看网卡是否收到包了 然后看客户端收到的信息的具体内容

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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