请教:
假设有两个客户端 IP 分别是:
192.168.0.112
192.168.0.111现在我想给 192.168.0.111procedure TForm1.Button1Click(Sender: TObject);
var
     ss:string;
begin
     ss:='12345';
      ServerSocket1.Socket.SendText(ss);
end;如果这么发的话,怎么知道是发给了哪个客户端?我要怎么控制?谢谢!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ss: string;
      i : Integer;
    begin
      ss:='12345';
      for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
          ServerSocket1.Socket.Connections[i].SendText(ss);
    end;
      

  2.   

    通过ServerSocket1.Socket.Connections可遍历所有客户端的连接。
      

  3.   

    要用
    ServerSocket1.Socket.Connections[i].SendText(ss);你可以先查下
    ServerSocket1.Socket.Connections[i].RemoteHost 看看是不是你要发的指定地址,再发送
      

  4.   

    jadeluo 大哥 和  dragonki 大哥
    您们太牛了!
    谢谢!还有一个问题,
    假设 IP 地址为 192.168.0.112 的客户端
    有 clientsocket1   和  clientsocket2
    clientsocket1   和  clientsocket2  
    都是和服务器连接的
    ServerSocket1.Socket.Connections[i].RemoteHost 
    ServerSocket2.Socket.Connections[i].RemoteHost 
    都是服务器的 IP 地址,是吗?
    还有
    是不是 当客户端的 clientsocket 向服务器发出连接的要求
    就要产生一个 socket ,是吗?
    那么当有很多的 clientsocket  向服务器发出连接的要求时
    就要产生很多的 scoket ,是吗?服务器端可不可以放两个 serversocket ,有什么用吗?
    我现在的情况是:
    服务器向 IP 地址为 :192.168.0.112 的客户端 发个 命令
    如 字符串 '12345' ,则 客户端的程序 就要新建一个窗体
    假设 服务器 向 IP 地址为 :192.168.0.112 的客户端 发了 3 个 字符串 '12345'
    则 客户端要 新建三个窗体(三个窗体建里屏幕的不同区域)
    而客户端需要抓图,把每窗体抓下来, 然后把 三个BMP 传到服务器jadeluo 大哥 和  dragonki 大哥,
    客户端需要 4 个 clientsocket 吗?谢谢!