Delphi Winsocks检测某个TCP端口师傅正在被使用


本文整理自网络,侵删。

 
//Checking if a TCP port is Open using Delphi and Winsocks
uses
  Winsock;
 
function PortTCP_IsOpen(dwPort : Word; ipAddressStr:AnsiString) : boolean;
var
  client : sockaddr_in;
  sock   : Integer;
 
  ret    : Integer;
  wsdata : WSAData;
begin
 Result:=False;
 ret := WSAStartup($0002, wsdata); //initiates use of the Winsock DLL
  if ret<>0 then exit;
  try
    client.sin_family      := AF_INET;  //Set the protocol to use , in this case (IPv4)
    client.sin_port        := htons(dwPort); //convert to TCP/IP network byte order (big-endian)
    client.sin_addr.s_addr := inet_addr(PAnsiChar(ipAddressStr));  //convert to IN_ADDR  structure
    sock  :=socket(AF_INET, SOCK_STREAM, 0);    //creates a socket
    Result:=connect(sock,client,SizeOf(client))=0;  //establishes a connection to a specified socket
  finally
  WSACleanup;
  end;
end;

begin
 if PortTCP_IsOpen(3306,'127.0.0.1') then
  DoMyStuff();
end;

相关阅读 >>

Delphi 字符串替换函数[单元文件 sysutils]

Delphi 批量文件改名

Delphi for 循环输出 a-z

Delphi 实现一个程序在另一个程序内运行

Delphi idtcpclient和idtcpserver主要属性

Delphi 释放res资源文件

Delphi xe 安卓开发黑屏的另一种解决办法

Delphi idhttp.post超时导致整个线程停止问题解决

Delphi 中的颜色

Delphi 将字型样式转成字串

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



打赏

取消

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

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

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

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

评论

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