关于通信程序设计问题 按照你的说法,随便一个支持“双向通讯”的(tcp)服务器程序都是干这个事情的。你可能还是在基本的编程语句上纠结呢,还没有到产品研发那一层。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以看看msdn上入门的 TcpListener 的例子,虽然msdn上的关于通讯的例子都非常简单、不实用,但是回答你的问题绰绰有余。只要用几行代码启动TcpListener对象实例,它就会监听客户端访问,然后就会与每一个客户端建立一个TcpClient连接,通过这个TcpClient.GetStream() 方法可以得到一个支持双向读写字节流数据的 Stream 对象,随时可以(异步或者同步)读数据或者(同步或者异步)写数据。这是服务器端。而客户端,你的各种pc设备、PLC+PLU设备之类的,直接使用tcp方式访问服务器,就能随时推送数据给服务器、随时收到服务器发来的数据。这是双工双向通讯的。至于处理复杂的业务,那需要你自己定义通讯信令格式,并有一个GateWay程序将.net对象与通讯所用的数据流进行序列化、反序列化。比如说通讯中传送json格式的文本信息。这是你自己要做的比较高层的设计,而底层则比较简单,跟你的业务无关。 所谓“多层”,这可能是指NAT路由机制。但是服务器总是放在一个“公共”的位置,所有客户端都可以访问到。因此客户端访问服务器端,然后长连接。如果断线,客户端会尝试重新连接服务器。服务器从来不会去主动连客户端。 你做的这个东西应该是个server,而所谓上层设备其实是clint你不应该考虑如何主动将数据发到clint,而是上层设备来获取数据否则如果你的上层设备有多个,或IP不固定,你逻辑实现起来会异常复杂 非常感谢各位的建议,白天上不了网,只能晚上回复了。是我搞复杂了,其实是这样的,业务程序把获得的数据保存到本地消息队列,有新消息时,通信程序从消息队列读取数据,通过socket连接发送给其它计算机。 ADO.Net的问题 JS拿后如方法????????????? c#除去字符串中,存在重复的字符! 关于c#...求救 求助,安装vs2005sp1时,我的电脑老报警,嘟嘟的响,是怎么回事? 怎么判断客户端是否安装 。NET框架,和AcitveX控件 各位大侠,请帮忙啊! 怎样创建Socket的长连接? 移动开发 ADO.NET中如何接收存储过程中的记录集? treeview 正则判断是URL或是搜索串?
你不应该考虑如何主动将数据发到clint,而是上层设备来获取数据
否则如果你的上层设备有多个,或IP不固定,你逻辑实现起来会异常复杂
是我搞复杂了,其实是这样的,业务程序把获得的数据保存到本地消息队列,有新消息时,通信程序从消息队列读取数据,通过socket连接发送给其它计算机。