想用idtcpserver做一个主站软件,接受远程终端通过GPRS功能发送的报文。
在IdTCPServerExecute里用AThread.connection.ReadLn读接收到的报文,发现收包全部错位了,相当于是上一条报文的一半和下一条报文的一半被组成一个包收。每条报文都被分割成两半然后分别和上下条报文的一半再去组成新包。
是不是因为ReadLn用回车符判断包的结尾,所以报文里一旦出现0D 0A就会认为这个包已经收完?可能这种更适合于ASCII的传输而不适合这种报文的传输。
应该怎样解决这个问题呢?还是不能用ReadLn而要用其他方法来收?菜鸟刚接触Delphi,急盼指教,多谢!