IdTCPClient在线程中发送buf,IdTCPServer.ReadBuff为什么会出错?

jl820712 2007-04-18 02:38:28
2个程序,分Client和Server。
Client程序中,我在窗口上放了个IdTCPClient组件
Server程序中,在窗口上放了个IdTCPServer组件

Client程序建立一个线程,在线程中我连接服务端,并发送一个Buffer:
var buf,recv: TBlock;
begin
if not TCPClient.Connected then begin
TCPClient.Host:= host;
TCPClient.Port:= port;
try TCPClient.Connect(5000); except end;//连接能成功
end;
if TCPClient.Connected then begin
TCPClient.WriteBuffer(buf, sizeof(buf));//发送也没问题
//TCPClient.ReadBuffer(recv, SizeOf(recv));
end;
end;

在TCPServer.OnExecute事件中。

procedure TfrmMain.TCPServerExecute(AThread: TIdPeerThread);
var Head: TBlock;
begin
if (AThread.Terminated) or (not AThread.Connection.Connected) then Exit;
AThread.Connection.ReadBuffer(Head, SizeOf(Head));//这一步出现问题。
end;


Client如果是在主线程中进行发送好像就不会有这样的情况,但如果在线程中就会出现服务端接收不到的问题。这个问题有什么方法可以解决吗?
...全文
350 点赞 收藏 2
写回复
2 条回复
散乱心绪 2007年04月26日
顶。
UP
回复 点赞
jl820712 2007年04月18日
已经解决,tcpclient在线程中发没问题的。问题出在其他地方。

结帖给分。先到先得。
回复 点赞
发动态
发帖子
网络通信/分布式开发
创建于2007-08-02

925

社区成员

3.3w+

社区内容

Delphi 网络通信/分布式开发
社区公告
暂无公告