只有UDP和移动连接才需要心跳包...
但是,如果客户端瓜了,服务器就不知道客户端瓜了
-------------
有个名词叫“Time Out”...
但是,如果客户端瓜了,服务器就不知道客户端瓜了
-------------
有个名词叫“Time Out”...
解决方案 »
- 一个文本框获取焦点时,激发什么事件呀?
- 自己写的C#程序 现在发出来供大家下载(提供源代码)
- 如何字符串写入编码为GB2312的文件?
- 服务启动后又停止了??
- 为什么执行后无记录显示?
- 转换SqlDataReader到DataSet
- 请问,大数据量的datatable的重复检查,怎么才能效率最高
- 关于Class的属性的问题
- System.Console.Write和System.Console.WriteLine的异同
- 如果实现在一个公共类时写数据库的连接和其它信息而在应用程序的其它窗体里调用
- 如何设置ContextMenuStrip显示的位置?
- DataGrid修改其中一行數據時如果不跳離這行數據其RowState為UnChanged.瞧瞧...
例如:发送这样一条数据
FFFFFFFFFFFFFFFFFFFF4A000D40000170000170000205 //16进制数
其中4A是数据包长度
000D是功能号
400001700001700002是数据
05是校验码 //4A000D400001700001700002做异或
上下通讯去解析协议 想怎么握手都行,哈哈!我做的是串口通讯
不知道你用的是长连接还是短连接,如果是长连接,那很容易判断客户端是否还没瓜,当然也就不需要心跳了。如果是短连接,那每一次的请求肯定用的不是同一个Socket,那就不用担心其它线程占用了。至于怎么判断超时,到MSDN里查查Socket.SendTimeout和Socket.ReceiveTime属性的帮助,里面有例子的。
=========================心跳就是给长连接的。短连接要什么心跳?长连接的问题在于,如果你把网线拔了,服务器要至少2个小时才知道你断了。