tcp异步通讯,在线等待········· (200分)

  • 主题发起人 主题发起人 zhaojinqiu
  • 开始时间 开始时间
Z

zhaojinqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
上位机(pc)<->全透明网关<->下位机(单片机)
通讯过程如下:
第一步:上位机发送1二进制到下位机,下位机回传数据.
第二步:上位机接收下位机回传数据,判断数据,然后判断是否继续发送数据.
现在阶段实验,上位机使用ClientSocket控件,sendbuf,非阻塞.
问题:
1.clientsocket如何知道下位机通过网关回传数据了(全透明网关不受控情况下)?
2.全部发送二进制数据,是否有别的控件可选择?
 
帮你关注。。。。。。。。。
 
从理论上说,socket应该是成对出现的。
否则你的数据是如何传到下位机去的?
按这种推理下位机也应该有一个socket才对。
//
这样如果下位机回传数据,上位机是不是也可以通过socket得到回传的数据呢。
 
如果你使用网关的话,那么所有的数据在经过网关转发以后,你看到的地址就都将会是来自网关的,所以如果你可以接收到数据,那么一定是通过网关发送过来了,否则的话一定不通,还有你的全透明网关在这里要它干吗,你的下位机和你的接收机难道要在不通的网段吗?
 
全透明网关是一个tcp转rs232设备,有自己的ip和端口。
下位机原来接收pc的串口发送数据。但是现在有了tcp->rs232的全透明网关,所以理论可以实现在局域网内任何一台pc都可给下位机发送数据。
经过现阶段调试,sendbuf&amp;ReceiveBuf现在已调通,线程接收。
现在的问题:
1、用sendbuf发送数组···正在试,那位有例子啊·········
2、tcpclient(D7)接收的时候主动取从下位机回传的数据,所以用了线程接收,可是觉得很浪费资源啊,有什么别的办法么?(1、写在onread里根本收不到2、用计数器不符合下位回传数据,上位立刻接收的要求)。
3、当向下位机发送数据中,如果下位机断开连接,在哪儿进行容错处理?onerro处理没反映····
 
项目结束,结帐
 
后退
顶部