本人在作socket服务器,请问一下,这个发送心跳包的工作是在服务器端作,还是在客户端作呀,另:接收的那端应该如何接收发心跳包是不是这两个方法都得用啊Socket.SetSocketOption()
Socket.IOControl()
请高手来解达我的困惑,谢谢
Socket.IOControl()
请高手来解达我的困惑,谢谢
解决方案 »
- 类库线程传值给窗体
- 简单的listbox显示数据,急求!!!!!!
- winform 安装程序如何显示欢迎界面。
- 窗体关闭.和省资源问题
- 请教高手:关闭线程
- 求助:关于XPO存储的问题
- 大家说我还要向哪些方向发展才能成为一名可以就职的程序员呢?
- 如何从DataTable中取出某个连续区段的若干条记录,类似DataGrid的分页?!
- 改变先祖的工具栏图标,继承窗体在设计时也跟着变了,可是为什么运行时,还是以前的样子?
- 请教高手!如何重写TabControl的OnPaint方法,以改变其BackColor!!(十万火急)
- 新手学C#写的数独软件求救问题!!!!!
- 用javascript给 <table>添加几行
原理上就是客户端每隔一段时间T给服务器发送请求,以确定存活
如3T时间服务器未收到客户端请求,则客户端自动登出;若3T时间客户端未收到服务器响应,则服务器异常,或自动重连服务器监听即可
Socket.SetSocketOption()
Socket.IOControl()
这两个方法比较生,好像是在raw socket的时候用过
一般用不着
接收那端接收时定一个timeout,可以用锁然后waitone(timeout),也可以直接异步,超时没收到就表示对方已经离线.
至于最后那两个函数不清楚,等高手,共同学习
9楼说的是不用独立线程和socket,用协议的标示来区别心跳包“哦,也就是说双方设定好了之后只要捕获异常就OK了呗,不用处理别的了,我可以这样理解吗? ”可你说的我总觉得不是那么个味道话说9楼的方法你肯定更晕。朋友,动手写几行代码,能通信了再来问吧,不然要说的太多
我倒是有点担心你“写完了”的代码其实跟实际经验所说的常用功能需求差十万八千里,只是纠结一点编程概念。
======================================================
我们的功能要求十分简单,只要能检测到某台机器是否在线就ok了,呵呵,但是就是这种异常发生的行为我捕获不到,我确实是开发经验不足,还请多多指教