Serversocket ClientSocket这两个控件真好用,我简单测试了下,开两个工程,下面简称 工程A 和 工程B工程A放 Serversocket  用来 做监听,也就是服务器
工程B放 ClientSocket  用来连接工程A 
然后开启两个工程OK没问题,我用工程B连接工程A , OK ,连接成功.
问题:我如何用工程A主动发数据给工程B,比如说发一个 edit1.Text里的字符串,
是服务器Serversocket主动发给ClientSocket  我现在虽然连接成功,但是我不知道这个ClientSocket  的IP是多少,即使知道,如果是内网呢?
内网怎么发送数据呢?  工程A是外网, 工程B 是内网. 

解决方案 »

  1.   

    client发一个请求给server,server再回复
      

  2.   

    那如果client不受我控制,我怎么让他发给我个请求?
    没有主动给client发送数据的方法吗?即使client是内网
      

  3.   


    在连接成功的请况下是可以发送的,在serversocket的Onconnect里面   发送。
    clientSocket的IP可以通过socket属性值取得(remoteaddress,具体记不清楚了)
      

  4.   

    求 具体发送信息源码或者具体方法
    成功后结贴..client连接我的Server
    只想知道怎么用Server给client发送信息.主动发送
      

  5.   

    Delphi 安装目录下找例子看看 \Demos\Internet\Chat
      

  6.   

    ServerSocket.Socket.Connections[0].SendText(edt.text)
    ServerSocket.Socket.Connections 里就存放了已连接的客户端
      

  7.   

    每个连上服务器的ClientSocket都会在服务器有一个句柄,通过这个句柄你可以获得客户端的IP、主机名,并发送数据给客户端。
      

  8.   


      srvrsckt1.Socket.ActiveConnections;  //连接个数
      srvrsckt1.Socket.Connections[0].RemoteAddress; //第一个连接的远程地址