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如果是在主线程中进行发送好像就不会有这样的情况,但如果在线程中就会出现服务端接收不到的问题。这个问题有什么方法可以解决吗?
...全文
431 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
散乱心绪 2007-04-26
  • 打赏
  • 举报
回复
顶。
UP
jl820712 2007-04-18
  • 打赏
  • 举报
回复
已经解决,tcpclient在线程中发没问题的。问题出在其他地方。

结帖给分。先到先得。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧