我正在尝试创建一个简单的TCP客户端/服务器应用程序。因此,服务器将等待来自客户端的命令。收到命令后,服务器将执行一些可能需要60秒的任务。在此期间,TCP客户端应等待这些任务的结果。
使用“WriteLn”和“ReadLn”方法完成命令的发送和接收。
但是,我不知道如何为TCP客户端做“等待”部分。因为我没有在TidTCPClient中看到任何可以捕获此事件的事件。
我尝试使用“ReadLn”超时,但似乎不起作用。
recv := '';
recv := TCPClient.ReadLn(#0, 30*1000);
在服务器上,30秒之前,我发送了一些东西:
AThread.Connection.WriteLn('SUCCESS');
但是从未收到过。
有什么建议吗?
答案 0 :(得分:0)
显然,我应该用这个:
recv := TCPClient.ReadLn('', 30*1000);
而不是:
recv := TCPClient.ReadLn(#0, 30*1000);
然后问题就解决了。