serversocket控件的socket.remoteaddress;可以知道客户端的IP,可我想要知道客户端的发送端口怎么实行!(100分)

  • 主题发起人 主题发起人 linjifan
  • 开始时间 开始时间
L

linjifan

Unregistered / Unconfirmed
GUEST, unregistred user!
serversocket控件的socket.remoteaddress;可以知道客户端的IP,可我想要知道客户端的发送端口怎么实行!
 
有remoteaddress,当然就有remoteport
 
难道就没有什么办法了吗?

 
对客户端的全部端口进行监测
 
用API函数
int getpeername (

SOCKET s,
struct sockaddr FAR* name,
int FAR* namelen
);
 
张无忌,
能给个例子或用法吗?我看不明白!
谢谢
 
不好意思,我记错了,应该是用getpeername这个函数
下面是VCL代码中的一段,不过被我简化了
var
SockAddrIn: TSockAddrIn;
Size: Integer;
begin
Lock;
try
Result := 0;
Size := SizeOf(SockAddrIn);
getpeername(FSocket, SockAddrIn, Size);
Result := ntohs(SockAddrIn.sin_port);
finally
Unlock;
end;
 
张无忌,
我在表单上放了一个SERVERSOCKET1控件和EDIT1,我要怎么才能奖客户联结SERVERSOCKET1的
端口显示在EDIT1中!
不好意思,麻烦您了!
 
楼主: astros的办法很好啊,真不明白你为什么不用!
 
我也认为astros的方法很好啊
 
var i:Integer;
begin
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do
ListBox1.Items.Add(IntToStr(ServerSocket1.Socket.Connections.RemotePort))
........
 
后退
顶部