Red de conocimientos turísticos - Conocimientos sobre calendario chino - Al programar en Delphi, ¿cómo detectar si un puerto está ocupado? ¿Se puede lograr sin usar controles? ¡Es mejor no usar controles!
Al programar en Delphi, ¿cómo detectar si un puerto está ocupado? ¿Se puede lograr sin usar controles? ¡Es mejor no usar controles!
¿Cómo detectar si el puerto de servicio UDP local está ocupado?
programa TestPort;
usa
WinSock, windows
var
s: TSocket; p>
p>
wsd: TWSAData;
SockAddrIn: TSockAddrIn
comenzar
if (WSAStartup(MAKEWORD(2, 2) , wsd) = 0 ) entonces
comienza
s := Socket(AF_INET, SOCK_DGRAM, 0
prueba
if); (s lt; gt ; SOCKET_ERROR) luego
comenzar
SockAddrIn.sin_family := AF_INET
SockAddrIn.sin_addr.S_addr := htonl(INADDR_ANY);
SockAddrIn.sin_port:= htons(Short(2222));
if (Bind(s, SockAddrIn, SizeOf(SockAddrIn))lt; gt; 0) entonces
if (GetLastError = WSAEADDRINUSE) entonces
MessageBox(0, 'Se utiliza el puerto 2222', 'Lo siento', MB_OK
end
<); p> finalmentep>
CloseSocket(s);
WSACleanup();
fin
fin; /p>