如何获知对方的IP?(50分)

  • 主题发起人 主题发起人 YourEyes
  • 开始时间 开始时间
Y

YourEyes

Unregistered / Unconfirmed
GUEST, unregistred user!

两个程序client和server
CLIENT用ClientSocket发送一条消息给Server,在SERVER端如何知道client的IP?

多谢
 
procedure TForm1.ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;
end;
 
嘿。。。
我知道 NMMSGServ1.RemoteIP,得到的是CLINET端IP。
你有用吗?
 
如果用的是API,可以用recvfrom()
 
client发送过来的信息里包含了它的IP地址,用Socket.RemoteAddress的值就是。
 
客户端的程序中添加广播自己IP的代码,服务器端监听就行了!
服务器端用代码
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
begin

flagip:=FromIp;//这句话就可以达到客户端的IP
NMUDP1.ReadBuffer(xkeyword,numberbytes);

end;
客户端的广播代码
procedure TForm1.Timer2Timer(Sender: TObject);
begin
NMUDP1.SendBuffer(xkeyword,6);//发送广播
end;
注意设置NMUDP1的一些属性

 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
NMUDP1.SendBuffer(xkeyword,6);//发送广播
 
Socket.RemoteAddress;
 
在接收消息时用Socket.RemoteAddress;可以得到发送方的ip地址。
 
接受答案了.
 
后退
顶部