我有以下情况:TCP发送命令并等待输出
function Mach3Code(Str: String): String;
var StrOut: String;
begin
StrOut := '';
try
IdTelnet1.Connect();
IdTelnet1.Write(Str);
StrOut := ''; // assign here return output;
finally
IdTelnet1.Disconnect;
end;
Result := StrOut;
end;
就行了“斯特劳特:=‘’;”我需要获得服务器的文本输出(这是一个tcp服务器,由我作为Mach3插件在vc 2008中编写)。
通常,客户端发送“COMMAND1”,服务器回复“ANSWER1#”或类似的东西。我需要的代码等待答案,然后返回它,同步,因此我可以这样做:
StrResult := Mach3Code('G0X300Y200');
和读什么服务器部分已经送给我的。
任何想法我可以如何解决这个问题?
我不知道Delphi和它的对象,但有一个'Write'方法的对象理应有一个'Read'方法。 –
与您的问题无关,但您是否必须每次连接/断开连接?如果你经常调用这个函数,将会产生很多开销。 –
@JoachimPileborg:是的,它确实有读取方法,但并不像预期的那样工作。它只是挂起。连接/断开连接不是问题,它很少被调用。 StrOut:= IdTelnet1.ReadLn('#') 这一个等待永远...... – kkazakov