c# socket通信怎么判断客户端掉线

请给C#代码学习,先谢大家了关于c#中socket通讯的问题(心跳等)1.这种方法的可行性?我需要通过TCP的方式实时向服务器请求端去数据,设想有一个心跳线程,定时向服务... 请给C#代码学习,先谢大家了
关于c#中socket通讯的问题(心跳等)

1.这种方法的可行性?
我需要通过TCP的方式实时向服务器请求端去数据,设想有一个心跳线程,定时向服务器端发送然后服务器端回复,如果连续几次没有回复的话,进行重新连接?请问这种方式有没有必要??
2.有没有参考的代码??
展开
 我来答
j757390808
2009-11-05
知道答主
回答量:3
采纳率:0%
帮助的人:3.3万
展开全部
p2p软件的话 个人认为就像楼主说的一样 需要客户端定期向服务器发送信息. 但服务器如果不强大的话 如果在服务器端做监控得到信息就回馈 在线用户很多的时候很容易就把服务器堆死了 如果是局域网可以选择用文件监控的方式 例如使用fileWatcher让系统去托管 当用户状态改变时会触发事件 或者用线程定期获取局域网列表 获取局域网机器列表的代码大致如下:
DataTable table = instance.GetDataSources();
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
switch (col.ColumnName)
{
case "ServerName": listView1.Items.Add("1", row[col].ToString(), 0); break;
case "InstanceName": listView1.Items.Find("1", true)[0].ToolTipText += "实例名:" + row[col].ToString(); break;
case "Version": listView1.Items.Find("1", true)[0].ToolTipText += "SQL版本:" + row[col].ToString(); break;
}
}
}
如果是广域网的话 就需要由客户端定期发从数据到服务器了 如果长时间未发送就判断该客户端已掉线 代码与正常socket交互没有很大区别 但要考虑到网络延迟问题设按实际情况设置间隔时间
wiwimo
2009-10-25 · TA获得超过261个赞
知道答主
回答量:167
采纳率:0%
帮助的人:85.2万
展开全部
这种方式有必要,就是现在最常用的’心跳包‘技术。。
这种心跳技术还可以进一步做,还可以让通讯多方设置同步等的功能。
代码其实很简单,和普通socket方式一样,只是作用只是检测而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid83
2009-10-25 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:2003万
展开全部
一般都是一个单独的线程去定时尝试发送数据到到服务器, 几次不成功就重新连.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式