极客号

c#winform窗体如何实现服务器实时接收数据,不借助button?(winform 定时执行方法)

  1. c#winform窗体如何实现服务器实时接收数据,不借助button?
  2. tcp异步可以传文件吗?

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

宽泛的讲,有两种方式,实现Client和Server的实时通讯(数据接收)。

c#winform窗体如何实现服务器实时接收数据,不借助button?(winform 定时执行方法)-图1

1、 Pull 也就是拉。 即Client把数据从Server中拉出来。

因为winform本质是事件驱动,如果不想用button,那么最简单的方式就是用定时器(timer), 比如每10秒请求一次数据,

这种方式本质上和button没有区别,还是通过事件来驱动应用,只不过是“自动”的去读取数据。

c#winform窗体如何实现服务器实时接收数据,不借助button?(winform 定时执行方法)-图2

优点是简单, 缺点是不及时(如果数据是1秒一变,这个10秒的间隔就太长了),而且资源利用率较低(如果1小时都没有变化, 这10秒一次的刷新就很占用资源)

2、Push 推,即Server将信息推送到Client中去。

Winform中实现推送信息,一般需要和Server建立连接,连接后,当Server需要推送(比如数据有更新)时,才向Client中发送信息。

c#winform窗体如何实现服务器实时接收数据,不借助button?(winform 定时执行方法)-图3

优点是数据的时效性较好,而且资源利用合理。

缺点是需要大量的代码(相比定时器那种方法)

Push模式可以参考“观察者模式”的开发方式。

tcp异步可以传文件吗?

tcp异步可以传文件。

TCP多线程异步传输 :开发的服务器端与客户端,通过tcp协议进行文件传输,在Winform程序中使用了多线程异步传输,可定时由客户端向服务器端传输文件,提供源代码。

异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。

到此,以上就是小编对于winform定时器启动停止的问题就介绍到这了,希望介绍的2点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

本站非盈利性质,与其它任何公司或商标无任何形式关联或合作。内容来源于互联网,如有冒犯请联系我们立删邮箱:83115484#qq.com,#换成@就是邮箱

转载请注明出处:http://www.hushtel.com/sm/36004.html

分享:
扫描分享到社交APP
上一篇
下一篇