IdTCPServer与如clientsocket控件 可以实现两者的连接,但clientsocket发送数据后,idtcpserver无法接收,请指点!!谢谢好像idtcpclient发送的数据前包含"dat:"??

解决方案 »

  1.   

    建议楼主看一下Indy的Source,楼主所说的这种情况可能性比较小,否则Indy就会成为一套垃圾控件了,因为其真如此就无法与他方软件进行通讯.
      

  2.   

    无法接收?不会的.
    楼主多半是用INDY的READLN或READBUFFER之类的等待接收..
    那样等待,readln是等待回车换行之类的结束符,readbuffer则是等待期待长度..你可以用clientsocket或其它东西发送串后面跟上#13字符,则INDY的readln读到#13就回返回了.
      

  3.   

    不会啊,建议楼主先看看indy的demo
      

  4.   

    谢谢三位指点!
    原先使用readln()无法读取,改用ReadString(ReadFromStack)可以获取!谢谢.顺便问一下,不知道对方使用何种SOCKET控件访问,只说使用TCP/IP协议,且指定端口.在服务端IP固定的情况下,应该可以互访吧,有无具体细节差别.比对阻塞式非阻塞式等.
      

  5.   

    补充一下:使用INDY来接收数据时,尽可能不要用ReadFromStack..
    就用Readln和ReadBuffer就可以解决大多数问题..
    如果你发现将不得不使用ReadFromStack...首先考虑是不是协议约定有问题.
    比如说你发送端仅简单发送一个串而不作任何长度约定或结束字符,这就是有问题的约定.
      

  6.   

    谢谢halfdream(哈欠),
    与发送端是有长度约定的,
    但使用readbuffer就在等待中了,直到关闭客户端才会接收到信息!
      

  7.   

    readbuffer在等待中,这意味着期待的长度值有错.仔细检查一下你要收的数据块长度,能够找出问题的.