是不是在Socket的后个函数里的某个参数中?

解决方案 »

  1.   

    procedure TChatForm.ServerSocketClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      Memo2.Lines.Clear;
      Memo2.lines.add(socket.RemoteHost);
    end;
      

  2.   

    错了,你要的是IP地址,这样可以了,端口号应该和server的一样啊
    Memo2.lines.add(socket.RemoteAddress)
      

  3.   

    用TServerSocket的Socket(为TServerWinSocket)属性的RemoteAddress
    和RemotePort属性可获取客户端的IP和端口
      

  4.   

    下面是 Delphi5.0 中 TCustomWinSocket 源代码,其它
    Socket 操作尽可以参照它的实现function TCustomWinSocket.GetRemotePort: Integer;
    var
      SockAddrIn: TSockAddrIn;
      Size: Integer;
    begin
      Lock;
      try
        Result := 0;
        if not FConnected then Exit;
        Size := SizeOf(SockAddrIn);
        CheckSocketResult(getpeername(FSocket, SockAddrIn, Size), 'getpeername');
        Result := ntohs(SockAddrIn.sin_port);
      finally
        Unlock;
      end;
    end;function TCustomWinSocket.GetRemoteAddr: TSockAddrIn;
    var
      Size: Integer;
    begin
      Lock;
      try
        FillChar(Result, SizeOf(Result), 0);
        if not FConnected then Exit;
        Size := SizeOf(Result);
        if getpeername(FSocket, Result, Size) <> 0 then
          FillChar(Result, SizeOf(Result), 0);
      finally
        Unlock;
      end;
    end;