c#winform窗体如何实现服务器实时接收数据,不借助button

c#winform窗体如何实现服务器实时接收数据,不借助button,第1张

宽泛的讲,有两种方式,实现Client和Server的实时通讯(数据接收)。
1、 Pull 也就是拉。 即Client把数据从Server中拉出来。
因为winform本质是事件驱动,如果不想用button,那么最简单的方式就是用定时器(timer), 比如每10秒请求一次数据,
这种方式本质上和button没有区别,还是通过事件来驱动应用,只不过是“自动”的去读取数据。
优点是简单, 缺点是不及时(如果数据是1秒一变,这个10秒的间隔就太长了),而且资源利用率较低(如果1小时都没有变化, 这10秒一次的刷新就很占用资源)
2、Push 推,即Server将信息推送到Client中去。
Winform中实现推送信息,一般需要和Server建立连接,连接后,当Server需要推送(比如数据有更新)时,才向Client中发送信息。
优点是数据的时效性较好,而且资源利用合理。
缺点是需要大量的代码(相比定时器那种方法)
Push模式可以参考“观察者模式”的开发方式。

首先这就有两个项目,一个是客户端,一个是服务端。 而且还要考虑到通讯协议。
客户端负责读取文件,然后转成字节,并且封装起来。
服务端负责接收数据包,然后转成文件流,最后另存为文件,保存起来。
不同的通讯协议的单个包的最大字节数也不尽相同,比如udp传输很大的文件就容易丢包,TCP又很麻烦,这就要看你的需求是怎样的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10933213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存