您现在的位置:首页 >> 网络通讯 >> 网络通讯 >> 内容

Delphi中判断TCP端口是否被占用

时间:2011/9/3 15:12:29 点击:

  核心提示:function PortOccupied(const APort:Integer):Boolean;var S:TSocket; WSD :TWSAData; SockAddrIn:TSockAdd...
function PortOccupied(const APort:Integer):Boolean;
var
  S:TSocket;
  WSD :TWSAData;
  SockAddrIn:TSockAddrIn;
begin
  Result:=False;
  if (WSAStartup(MAKEWORD(2,2),WSD)= 0) then
  begin
    S := Socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    try
      if (S <> SOCKET_ERROR) then
      begin
        SockAddrIn.sin_family := AF_INET;
        SockAddrIn.sin_addr.S_addr := htonl(INADDR_ANY);
        //SockAddrIn.sin_addr.S_addr := inet_addr(PAnsiChar(AnsiString(IP)));
        SockAddrIn.sin_port:= htons(APort);
        if (Bind(S,SockAddrIn,SizeOf(SockAddrIn))<>0) then
          if (WSAGetLastError = WSAEADDRINUSE) then
            Result:=True;
      end;
    finally
      CloseSocket(S);
      WSACleanup();
    end;
  end;
end;

作者:站长 来源:原创
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号