如何利用indy-server控件,得到连接用户的ip和端口?
这个事件在那里被触发?
具体情况是这样的
有另一个程序(别人写的程序),会访问远程ip的1112
我在远程做了个程序,放了indy-server控件
,我该如何才能得到,这个程序所在的ip地址和所发请求的端口地址?谢谢

解决方案 »

  1.   

    找到办法了,阔惜分分少哈。
    procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    var
            ss: string;
    begin
            Memo1.Lines.Add(AThread.Connection.Socket.Binding.PeerIP);
            Memo1.Lines.Add(IntToStr(AThread.Connection.Socket.Binding.PeerPort));
            try
                    ss:=AThread.Connection.ReadLn();
            except
            end;
    end;
      

  2.   

    找到办法了,阔惜分分少哈。
    procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    var
            ss: string;
    begin
            Memo1.Lines.Add(AThread.Connection.Socket.Binding.PeerIP);
            Memo1.Lines.Add(IntToStr(AThread.Connection.Socket.Binding.PeerPort));
            try
                    ss:=AThread.Connection.ReadLn();
            except
            end;
    end;
    这样不对,我也是这样写的,但返回来的端口号不对,反回的ip地址似乎是本机ip
    反正peerport可以肯定是不对的,并非远程端口
      

  3.   

    反正我试了是对的哈,而且peerip和peerport都是对的,除非你那个2台计算机之间经过了nat或者socket代理。你仔细瞅瞅看。
      

  4.   

    你应该在局域网里试一下,因为经过NAT或者代理,ip地址和源端口号都会变掉的。
      

  5.   

    看起来是这样子,我是通过了nat,但是,,,,不知道应该怎么说,反正不对了,算了这个问题我已经用其他方法搞定了,就此散分吧