关于TCP的Socket数据发送的问题

lmxctds 2006-04-04 06:07:36
我在Windows下使用TCP在两台计算机之间进行数据传输,发现如果在TCP连接中将其中一台的计算机网络的物理连接断开后(此计算机的TCP连接马上会断开了),另一台计算机在一段时间内send函数仍然返回发送成功。请教如何才能当数据没有及时到达目的地时,send函数能够马上返回失败?

另外我使用的是802.11b无线网络,考虑到其物理连接不会像有线连接那么稳定,是不是使用UDP并且在程序中进行数据可靠判断会更好呢(数据量不是很大)?

另外,谁有关于UDP可靠传输的源码或相关资料,可否提供给我?

谢谢!
...全文
801 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
numbbb 2007-04-25
  • 打赏
  • 举报
回复
这个很简单,把KeepAlive检测设置成10秒就行了
wxf0204 2007-04-25
  • 打赏
  • 举报
回复
可以人工的做回应,发送出去后,让对方返回一个OK
  • 打赏
  • 举报
回复
晕了
色郎中 2006-07-02
  • 打赏
  • 举报
回复
你的PC 都是接 无线模块的 吧
要是的话,那就正常了 呵呵 我们这用的好像也这样呵呵

zhangyuyd 2006-05-17
  • 打赏
  • 举报
回复
independently(我是风筝高高飞)
能不能也发一分给我,谢谢
我的邮箱是zhangyuyd@163.com
Kendiv 2006-04-07
  • 打赏
  • 举报
回复
或者调整socket的属性,把keepalive设短些。
Kendiv 2006-04-07
  • 打赏
  • 举报
回复
嗯,一般OS对于TCP 的 Keepalive设的都比较大。

一般情况下,tcp的send都不会马上返回失败,可考虑进行主动检测。
xiaoyi20 2006-04-06
  • 打赏
  • 举报
回复
楼主能不能把independently(我是风筝高高飞)的例子转发一份给我
liushao20@gmail.com谢谢先。
independently 2006-04-05
  • 打赏
  • 举报
回复
已发,注意查收
lmxctds 2006-04-05
  • 打赏
  • 举报
回复
我的邮箱是lmxctds@163.com
谢谢!
independently 2006-04-05
  • 打赏
  • 举报
回复
问下楼主,你要什么语言的?我这有个VC的类似例子,不知道对你有没帮助,要的话留下邮箱吧!
peipeiguo 2006-04-04
  • 打赏
  • 举报
回复
另一台计算机在一段时间内send函数仍然返回发送成功?
不会吧,TCP连接的结果不应该这样.
thinkinnight 2006-04-04
  • 打赏
  • 举报
回复
根据《unix网络编程》V1,send()函数只是将数据从应用程序的缓冲区放入内核的缓冲区,而发送是IO的事,而且发送后,到达目标机器之前,还会经过其他层和其他网络设备,send发送成功可以理解。至于如何做到马上返回失败,就不清楚了。
mark一下

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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