环境: Windows Server 2003 Delphi 2010 uses WinSocket; function CheckPort(APort: Integer): Boolean; var wsadata: TWSAData; s: TSocket; addrin: TSockAddrIn; begin WSAStartup(MakeWord(2, 2), wsadata); s := socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); try addrin.sin_family := AF_INET; addrin.sin_port := htons(Short(APort)); addrin.sin_addr.S_addr := htonl(INADDR_ANY); bind(s, addrin, SizeOf(addrin)); Result := (GetLastError <> WSAEADDRINUSE); finally closesocket(s); WSACleanup; end; end;