董松建 2015-06-24 07:40 采纳率: 33.3%
浏览 2002
已采纳

c#服务器段测量数据,多个客户端实时同步显示

我有一台服务器,运行用c#写的程序通过串口连接设备实时采集数据。
我希望从其他任何电脑利用客户端程序实时动态的显示服务器上采集的数据。

如果用数据库实现的话,客户端程序不方便判断哪些数据是新数据,而且效率也很低。
于是想用Socket实现。本人小白啦,对Socket只是有耳闻而已。
在网上查了查资料,好像基本上就是两种模式。
1.Socket广播。 我的理解就是服务器向网内广播地址发送一条消息,路由器会在网内自动转发。网内的客户端被动的接收消息,刷新数据就可以了。
2.服务器打开并监听端口,被动接收客户端的请求,再响应。

但是第一种的做法,我担心当数据采集频率较高,或未来有多台以此种方式实现的服务器时,大量的广播信息会不会对网络造成负担。而且我们公司的内网是多个网段,用多台三层交换机连接到一起的。虽然IP互相都能Ping通,但是不知道广播数据能否转发到其他网段。而且广播貌似用UDP协议,看网上的解释,好像这种协议不能保证数据的先后,但我需要客户端就像心电图一样,显示一个连续的波形。第二种做法的话,需要客户端不停的发送请求,当客户端请求的频率和数据采集的频率不一致时,服务器端还要考虑是否已给给此客户端发送过最新的数据。而且当客户端数量较多的时候,会不会对服务器端程序造成压力,影响数据采集进程。

我理想的模式就是,服务器采集到数据之后,直接将数据发送到某个端口。客户端监听服务器的端口,当服务器端口数据有变化时,就将数据获取并显示出来。
看起来和上面第一种模式有些类似。但是我不希望广播,是通过客户端监听实现。

  • 写回答

1条回答 默认 最新

  • 叶丰 2015-06-24 09:17
    关注

    使用HTTP协议, HTTP长连接可以很好解决你的问题,不过技术上有些难

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错