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>

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> finalmente

p>

CloseSocket(s);

WSACleanup();

fin

fin; /p>

v>