我有一个客户端程序需要和服务器端通信,使用TCP连接,并且在没退出程序时需要保持连接。
但是现在遇到的问题是,程序经常断开与服务器的连接。
然后我增加了类似心跳的机制(用TCP每隔一段时间发送一个确认数据包),结果依然会经常断线。
请问用TCP方式是否有好的方法可以避免这种问题或者减少断线出现的几率。
希望大家能够关注一下!
但是现在遇到的问题是,程序经常断开与服务器的连接。
然后我增加了类似心跳的机制(用TCP每隔一段时间发送一个确认数据包),结果依然会经常断线。
请问用TCP方式是否有好的方法可以避免这种问题或者减少断线出现的几率。
希望大家能够关注一下!
解决方案 »
- 基于实时阴影线渲染的阴影技术???
- 菜鸟问题,关于类型转换,请指点……
- 打算以后从事游戏开发,有什么图书介绍
- 【CListCtrl行列判断】CListCtrl 控件如何判断当鼠标在这个控件上移动时,移动到了哪一行,哪一列???
- 高分求救:在程序中实现给定进程ID,将该进程应用激活到最前,该应用不一定有可见窗口
- 485 串口通讯时SetCommMask和SetCommState如何设置最稳定?
- 想根据定义在另外一个DLL里面的对话框资源,打开并创建该对话框,应该怎么做。
- 我想给一个VC6下的工程项目改名,如何做?
- 什么问题?
- 多语言开发问题,请教!
- windows 程序设计 关于 窗口过程的一个问题
- 我是来散分的
select, iocp还是其他?
还有你说的断线是在什么时候断的,send,recv,connect?
怎么判定断线的, getlasterror后,错误码是多少?
”
recv返回0时,不一定就是socket关闭。
1. 如果是 阻塞 模型,
recv 返回0,-1,可以认为socket关闭。
2. 如果是 非阻塞 模型,
recv 返回0,不能认为socket关闭。
recv 返回-1,还要getlasterror,如果是=10053,也不能认为是断线,只有其他值才可以认为socket关闭。