Delphi 判断端口是否被使用


本文整理自网络,侵删。

 
function TROMiddleWare.IsPortUsed(aPort: Integer): Boolean;
var
  _vSock: TSocket;
  _vWSAData: TWSAData;
  _vAddrIn: TSockAddrIn;
begin
  Result := False;
  try
    if WSAStartup(MAKEWORD(2, 2), _vWSAData) = 0 then
    begin
      _vSock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      try
        if _vSock <> SOCKET_ERROR then
        begin
          _vAddrIn.sin_family := AF_INET;
          _vAddrIn.sin_addr.S_addr := htonl(INADDR_ANY);
          _vAddrIn.sin_port := htons(aPort);
          if Bind(_vSock, _vAddrIn, SizeOf(_vAddrIn)) <> 0 then
            if WSAGetLastError = WSAEADDRINUSE then
              Result := True;
        end;
      finally
        CloseSocket(_vSock);
        WSACleanup();
      end;
    end;
  except
    Exit;
  end;
end;
――――――――――――――――

原文链接:https://blog.csdn.net/zjm12343/article/details/103278333

相关阅读 >>

Delphi 数组与枚举

Delphi的format使用总结

Delphi 实现如何枚举所有打开的ie选项卡

Delphi 操作前,删除前,覆盖前,询问对话框

Delphi trestclient + trestrequest + trestresponse

Delphi 获取\xxx\xxxx\1234最后一级名称

Delphi中如何提高listview删除item的速度

Delphi利用系统环境变量获取常用系统目录

Delphi2010中使用pchar时e2010 incompatible types: 'char' and 'ansichar' 错误的处理

Delphi 通过读取注册表信息获取桌面路径

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...