求助,有关Socket监听DTU设备的问题 本帖最后由 yayiba2020 于 2011-07-05 14:33:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从newSocket = socket.Accept()开始的code应该处于循环中。 socket.Accept() 我觉得还是应该放到循环外,因为它是阻塞方法,我这里每次调用都会阻塞半分钟左右。这段时间如果有数据来,我是接不到的。 如果放到循环外, 肯定只有一个socket收到 放到外只能接收到一个socket,应该将监听的代码放到线程中或者是使用BeginAccept方法。 socket.Accept() 要放到循环内,你自己测试一下就知道了。 我把socket.Accept() 放到了循环内,能收了多个DTU发来的数据。但是出现了一个问题:每次调用socket.Accept()或异步的BeginAccept方法,都会阻塞两分钟左右后才能收到数据,这导致DTU设备每隔几秒都会发数据,但我每隔两分钟才能处理一次数据。有没有办法能够避免阻塞,或让阻塞时间短一些呢? 应该是说DTU设备每隔几秒都会发数据,但我每隔两分钟才能收到一次数据。 关于此客户端引用数据实体层的意思 关于点击菜单后执行的问题 Linq to sql 如何设置要连接的数据库? 关于datatimepicker控件的日期格式设置? 自動獲取條形碼掃描問題,在線等!急! Repeater分页问题~在线等! 数据库中的循环问题 Web页面中文显示不对 .net连接oracle数据库的问题 为什么会出现 500 错误!!!!,求大神指点 大侠请进 请教大侠如何实现类似tabcontrol竖起来的效果
但是出现了一个问题:每次调用socket.Accept()或异步的BeginAccept方法,都会阻塞两分钟左右后才能收到数据,这导致DTU设备每隔几秒都会发数据,但我每隔两分钟才能处理一次数据。有没有办法能够避免阻塞,或让阻塞时间短一些呢?