老师开了一个服务端,用于接受客户端连接,和接收命令.我已经用socketclient组件成功连接到服务器.但是发出去的命令怎么也得到不服务端正确的回应.服务端说明中有以下文字"客户端给服务端发送数据时,最后一个字符'\0'不要发送,否则服务器将把该命令确定为非法命令,既而返回结果为250,如"RESULT"命令,发送的字节数为6字节"我总是收到250  :(好像用string 发送系统在发送时自动会加上"#0"(Delphi)结束串不知道有什么办法才能让发送时不带'\0'?! 给100分,谢谢啦

解决方案 »

  1.   

    ClientSocket.Socket.SendText(SendMemo.Lines[SendMemo.lines.count-1]);
      

  2.   

    你是用D6吧?直接把控件里的内容发出去就行了。Edit也没什么区别吧。
      

  3.   

    我用的是D7,这好像跟D6,D7也没什么关系的.不管我用char 的array 来发送,还是string 来发送,好像,delphi 死也要在最后加个'\0'结束 :(.....
      

  4.   

    SendText是传送字符串,字符串在最后会自动加上/0的,多占1个字节,所以你不要用SendText,用SendBuf去做,定义个字符形数组就可以了。
      

  5.   

    这种东西以前做过一会,毕业设计,^_^。当时什么也不会,后来找了n多书突击了一个星期把delphi和winsock都搞定了。我得出的经验是,尽量少用那些破破控件,不顶用的。
    还有就是,当时我研究了别人的源程序,那个家伙也不是用的string。当然socket可以用string。
    他以及后来的我,都采用了好像是数据流来着。。stream来着。我记不太清楚了。结果用这个可以传送100M数量级的文件。。呵呵,速度还死快!
      

  6.   

    我从来都不用SendText ,只用SendBuff of byte 还是先转成二进制再传。