读书人

TIdTCPServer在OnExecute事件收到字符

发布时间: 2012-02-12 17:16:34 作者: rapoo

TIdTCPServer在OnExecute事件收到字符串,然后紧接着向TIdTCPClient发送字符串,为什么不执行?
客户端:
IdTCPClient1.Connect;
if IdTCPClient1.Connected then
begin
IdTCPClient1.Socket.Write( 'Test ');
IdTCPClient1.Socket.ReadString(5); //执行到这里停住了,据说是Indy的阻塞式.
IdTCPClient1.Disconnect;
end

服务器端:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
begin
AContext.Connection.Socket.AllData;
AContext.Connection.Socket.Write( 'simon '); //本来是想在这里收到客户端的消息后马上发给客户端一个字符串,但是就是不行这句,为什么?而且即使屏蔽客户端的IdTCPClient1.Socket.ReadString(5); 也不执行这句。奇怪!
end;
请高手相助!


[解决办法]
indy10?
[解决办法]
9还不稳定呢 就出10了,
[解决办法]
帮忙顶一下
[解决办法]
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
s1:string;
begin
s1:=AContext.Connection.Socket.read(5);
AContext.Connection.Socket.Write( 'simon ');


其实简单命令用writeln、readln最好处理了,indy能自动根据换行来接收一个完整命令。

读书人网 >.NET

热点推荐