Indy tcp(100分)

  • 主题发起人 主题发起人 coldwind
  • 开始时间 开始时间
C

coldwind

Unregistered / Unconfirmed
GUEST, unregistred user!
使用indy的tcp client和server,在client连接到server后,server如何向所有连接到server的client发送一些信息呢?类似于广播
 
可以将所有的client连接过来的CONNECTION列举出来,然后分别向其发送信息。
 
不好意思,请问如何列举?这是最关键的
 
能够给段例子,说明如何列举,又是如何发送的?
 
请你去看一下TIdTCPServer的帮助,控件属性中有这么一项:
property Threads: TThreadList;
按照帮助里的解释就是作为 TIdPeerThread 对象的容器出现的,
而我们知道SERVER端会为每一个client连接建立一个TIdPeerThread对象,并通过
这个对象完成网络操作,包括发送数据。
就是说,访问 Threads属性就可以知道所有的连接了。
然后,就可以使用每一个Threads的CONNCTION对象的WriteLn或者Write方法完成对该
连接的数据发送工作。
写个程序试试吧,祝顺利。
 
i have got a demo from indy's web,thanks.
 
To coldwind:
--i have got a demo from indy's web
where can I found that demo?
是不是如同bigroom所写的那样?
 
用LockList取得Threads的List,然后遍历其中所有连接,最后在UnLock。你看看Indy9的Demo,
其中有个Chat例子,里面就有广播。
 
grhunter:
Indy9的Demo中的Chat例子中,没有使用到TIdTCPServer的Threads属性,而是另用了一个Clients : TList来保存所有连接
有没有办法直接用Threads属性
 
grhunter:
I'm sorry,已看到如何使用
 
用TIdTcpServer和TIdTcpClient做的聊天室例子
http://www.wisdomcube.com/stuff/chat.rar
参看一下合不合你用吧???
 
bigroom 说的很对了!
 
在indy的例子中的idTcpdemo实例中,可以看的很清楚的.里面有一个广播消息的处理
 
后退
顶部