最傻的办法,做个socket去绑定它uses WinSock;var
sockHandle : WinSock.TSocket;function bindPort(port:integer):boolean;
var
err: Integer;
WData: TWSAData;
Addr: TSockAddr;
begin
err := WSAStartup(MakeWord(1,1), WData);
if err <> 0 then begin
result := false;
exit;
end;
sockHandle := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if sockHandle = INVALID_SOCKET then begin
//winsock创建失败
result := false;
exit;
end; Addr.sin_family := AF_INET;
Addr.sin_port := htons(port);
Addr.sin_addr.s_addr := INADDR_ANY;
if bind(ServerSocketHandle, Addr, SizeOf(Addr)) = SOCKET_ERROR then begin
//winsock绑定失败,可能是端口被占用
result := false;
exit;
end; result := true;
end;procedure freePort();
begin
CloseSocket(sockHandle);
end;
sockHandle : WinSock.TSocket;function bindPort(port:integer):boolean;
var
err: Integer;
WData: TWSAData;
Addr: TSockAddr;
begin
err := WSAStartup(MakeWord(1,1), WData);
if err <> 0 then begin
result := false;
exit;
end;
sockHandle := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if sockHandle = INVALID_SOCKET then begin
//winsock创建失败
result := false;
exit;
end; Addr.sin_family := AF_INET;
Addr.sin_port := htons(port);
Addr.sin_addr.s_addr := INADDR_ANY;
if bind(ServerSocketHandle, Addr, SizeOf(Addr)) = SOCKET_ERROR then begin
//winsock绑定失败,可能是端口被占用
result := false;
exit;
end; result := true;
end;procedure freePort();
begin
CloseSocket(sockHandle);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货