我做了一个简单的数据采集程序通过网线与下面的Schneider的Quantum连接,想取出该PLC里面的数据。我采用了ClientSocket控件,有很多问题:1)ClientSocek和ServerSocket必须成对出现吗?因为Quantum里面内嵌有server功能,所以我认为我只要作了Client就能够连通了。并且用vb里面的winsock已经成功取出来数据了,而我的却不行,是因为ClientSocket功能不行吗?
2)在取数据的过程中,我利用了socket.receiveBuf,我定义了其参数。我认为receiveBuf就可以把数据取上来放置到其参数所定义的缓冲区中,是这样的吗?难道要利用receiveText这个方法吗?那我怎么处理呢?因为我要按照PLC取上来的数据格式,我只需要部分字节的数据,所以还要处理。随意我需要把数据取上来截取我需要的,请问我该怎么做呢?
3)控件TCPClient和ClientSocket功能有什么区别呢?请高手不吝赐教!
非常感谢!

解决方案 »

  1.   

    1.clientsocket与serversocket并不是在任何程序中都必须成对出现的,出不出现只是看你具体的要求。比如你用clientsocket向一个HTTP发送一些HTTP请求,你就没必要再搞一个serversocket,除非你想自己写HTTP服务器。
      

  2.   

    1)不要,Socket的都通用。
     只能是你处理中有错误。
    2)ReceiveBuf和ReceiveText适合不同情况,其实在实现上,后者调用了前者。
    3)不同方式封装的SOCKET控件,很少用TCPCLIENT。就CLIENTSOCKET熟点。
      

  3.   

    在取数据的过程中,我利用了socket.receiveBuf,我定义了其参数。我认为receiveBuf就可以把数据取上来放置到其参数所定义的缓冲区中
    我也是初学这个,这样应该没错,然后用read方法
    不知道对不对,请高手指点