你可以 :
 for i:=0 to self.ServerSocket1.Socket.ActiveConnections-1 do
     ServerSocket1.Socket.Connections[i].sendtext(YourLog);

解决方案 »

  1.   

    可是我做的是远程控制~每个客户端都可以连接上服务端~BUT 执行的操作不一样,发送的数据也不一样阿
      

  2.   

    2、传送文件的一端要注意文件数据缓存不能太大。另外,你最好加上两端的验证。比如服务端传送文件到客户端,应该一次传一部分,当客户端收到后已接受的消息到服务端,服务端收到这个消息后再传送。
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  3.   

    如果你使用多线程的话,还有一些其他值得注意的问题。
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  4.   

    这一句能够保证你能向所有的活动连接客户端节点发送数据,不至于项已经关闭连接的节点发送数据,至于你向每个客户端发送什么你可以在for循环中根据不同的socket.remotehostname作不同的发送处理!
      

  5.   

    那我不是要在CLIENT端发送数据时在数据中加上CLIENT端的IP才行阿ER.请问多线程的下载怎么做阿~有相关的例子吗,不胜感激阿你说的两端的验证信息如果丢失呢,要不要加上重发机制,不过TCP不是应该提供了这些的吗
      

  6.   

    多线程的不是一两句话能说情的,你最好研究一下Delphi的帮助,里面说得很清楚
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  7.   

    利用 TCustomWinSocket.Data 属性
    即 
         ServerSocket1.Socket.Connections[i].Data
     它是一个指针你可以在连接是分配,断开是释放。你可以放任何内容
    另外 你应检查sendtext,sendbuf等的返回值
    如果 sendtext=0 或 sendbuf=-1 你必须重新发送
      

  8.   

    嗯,好的,不过我还是没搞懂,TCP不是应该提供了验证的吗
    而且我在发送数据时也加了验证啊~我觉得可能就是这些验证信息丢失了
      

  9.   

    TO shw014()  能说得详细点吗ServerSocket1.Socket.Connections[i].Data我该用来存放什么内容呢

    sendtext,sendbuf等的返回值是指发送是否成功吗