多看手册,你不难发现手册里已把原因都讲出来了.
http://cn.php.net/manual/zh/function.fsockopen.php
UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.