本文整理自网络,侵删。
//Checking if a TCP port is Open using Delphi and Winsocksuses 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; 相关阅读 >>
winapi 字符及字符串函数(13): lstrcmp、lstrcmpi - 对比串
Delphi createprocesswithlogonw用法
Delphi 开发64位应用程序使用windows api的注意事项
Delphi program name、process id、window handle、process handle 的转换函数
更多相关阅读请进入《Delphi》频道 >>