IdTCPClient 客户端不知道怎么接收服务端转发来的文字?

nimeide1234567890 2017-01-05 02:39:41
搞了3天3夜没搞定,中间打手枪一次,虚脱了。
我的目的是A客户端发送文字到服务端,服务端转发给B客户端,
现在A数据发送到了服务端,服务端发送到了B客户端,现在B客户端怎么接收服务端发来的文字?
用的是Delphi7自带的 IdTCPClient2 和 IdTCPServer1,不是Delphi2007,也不是Delphi XE


//A客户端已经连上了服务端,也能发送数据到服务端,服务端也接收成功
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
IdTCPClient2.WriteLn(host+'#4>'+Memo1.Text);


//服务端转发到B客户端
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
...
begin
str:=AThread.Connection.ReadLn;
cmd:=pos('#4>',str); //查找分隔符
ip:=copy(str,1,cmd-1); //提取文件名
sendStr:=copy(str,cmd+1,Length(str)-cmd-1);
sm:=TStringStream.Create(sendStr);
msize:=sm.Size;//这里有大小
AThread.Connection.WriteInteger(msize);
AThread.Connection.WriteStream(sm);
sm.Free;

现在B客户端怎么接收数据?
...全文
206 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
看那山瞧那水 2017-01-05
  • 打赏
  • 举报
回复
A,B客户端首先都连到服务器,服务器有个LIST会保存连接的客户端。 B客户端开个线程,监控接收服务端发的消息 网上有DEMO的,找找 Indy也有个Chat的DEMO
看那山瞧那水 2017-01-05
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/bd_lyy791128/9396651 这个是教程,INDY10的,D7的自带的是INDY9的?可以卸了装10的,10的应当BUG少点?
nimeide1234567890 2017-01-05
  • 打赏
  • 举报
回复
引用 1 楼 jankercsdn 的回复:
A,B客户端首先都连到服务器,服务器有个LIST会保存连接的客户端。 B客户端开个线程,监控接收服务端发的消息 网上有DEMO的,找找 Indy也有个Chat的DEMO
查阅了很多资料,都说是B客户端用线程,可是怎么写都错误,我用的是D7带的控件,是不是这个控件很多BUG,怎么写都错误 要不就是取不到,要不就是程序死了

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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