如何获得某个客户端程序与服务器连接时所打开的端口??(50分)

  • 主题发起人 chinaweiling
  • 开始时间
C

chinaweiling

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,小弟近日写一程序,需要实时获得客户端程序与服务器连接时所打开的端口
用来过滤数据包,求一解法,有源程更好。谢谢!!![:D]
 
var
Client,Server:TSocket;
Ra:SOCKADDR_IN;
Client:=Accept(Server,@Ra,@Ra_len);
if Client=INVALID_SOCKET then
begin
Log:='接受连接出错,退出...';
Closesocket(Server);
break;
end;
Port:=ntohs(Ra.sin_port);//这个可以看懂把!
Ip:=inet_ntoa(Ra.sin_addr);
 
感谢张无忌大侠!!小弟是要写一段程序来获得另外一个客户端程序所打开的端口,
谢谢!!
 
用GetTcpTable();和 GetUdpTable()函数,具体的查msdn
 
感谢张无忌大侠!!
 
你可以建立一个socket用线程不端的去循环连接你要的端口看是否能连通.用WaitForSingleObject来检验是否超时来判断该端口是否有效.
详细的可以看看这个实例,非常有帮助哦
http://www.delphibox.com/article.asp?articleid=327
 
顶部