我有一个程序server用idtcpserver监听
我希望当我点击一个按钮的时候通过
以下的方式
procedure TForm1.Button3Click(Sender: TObject);
var
LThreads : TList;
buff : array[0..1024] of char;
i : integer;
begin
LThreads := idtcpserver1.Threads.LockList;
try
for i := 0 to LThreads.Count - 1 do
begin
TIdPeerThread(LThreads[i]).Connection.Socket.Send(buff, 1024);
end;
finally
idtcpserver1.Threads.UnlockList;
end;
end;
来发送一个buff到所有连接上来的客户端,但是客户端收不到消息
是不是indytcp的athread只能在execute等idtcpserver的事件中才能用?
有什么办法可以在其他过程中用athread.connection.socket.send()吗?
我希望当我点击一个按钮的时候通过
以下的方式
procedure TForm1.Button3Click(Sender: TObject);
var
LThreads : TList;
buff : array[0..1024] of char;
i : integer;
begin
LThreads := idtcpserver1.Threads.LockList;
try
for i := 0 to LThreads.Count - 1 do
begin
TIdPeerThread(LThreads[i]).Connection.Socket.Send(buff, 1024);
end;
finally
idtcpserver1.Threads.UnlockList;
end;
end;
来发送一个buff到所有连接上来的客户端,但是客户端收不到消息
是不是indytcp的athread只能在execute等idtcpserver的事件中才能用?
有什么办法可以在其他过程中用athread.connection.socket.send()吗?
解决方案 »
- INDY9中如何使用UIDL的问题????
- 小问题我始终没解决在delphi6里的bde里有个StoredProc构件,我的数据库是sql7.0里边有100个储存过程,我如何才能利用StoredProc动态修改
- 关于ADO+SQL2000
- 鼠标点击在控件上,转换成屏幕上的像素,请问语句。
- ord()函数的用法?
- 非技术问题
- 如何获取一个文件的文件名?
- 為何SENDKEY對OUTLOOK無效??
- 哪儿可以下到Install shield For Delphi6??
- 现在没斑竹啊.....怎么你们不当吗?
- 如何将Delphi的缺省打开工程的路径为自己常用的路径
- 数据控件的Refresh方法怎么用?
TIdPeerThread(LThreads[i]).Connection.Socket.Send(buff, 1024);
应改为
TIdPeerThread(LThreads[i]).Connection.Socket.Send(buff[0], 1024);
var
buff : array[0..1024] of char;
i : integer;
begin
idtcpserver1.Threads.LockList;
try
for i := 0 to idtcpserver1.Threads.Count - 1 do
begin
idtcpserver1.Threads。Connection.Socket.Send(buff, 1024);
end;
finally
idtcpserver1.Threads.UnlockList;
end;
end;
搞定了
wenhui1215()
idtcpserver1.Threads。Connection.Socket.Send(buff, 1024);
你这样写是不行的
要转成tidpeerthread才有connection.socket问题确实是出在客户端,他们原来写的程序在buff里加了校验位,
在buff里写入校验位就好了