在检索远程套接字IP和端口号时遇到问题。 在以下过程中:
$master_socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//socket_bind(), socket_listen(), socket_accept()
socket_getpeername($client_socket, $client_address, $client_port);
这在localhost(WAMP)上运行正常,但在生产中它会生成警告:
PHP Warning: socket_getpeername(): unable to retrieve peer name [107]: Transport endpoint is not connected in ...
这很奇怪,因为$client_socket
是一个正确的套接字资源,其他套接字函数(如socket_read()
)可以正常运行; socket_getsockname()
也可以,将本地IP和端口号绑定到已分配的变量。
搜索网络没有任何帮助。有谁知道这种警告的原因是什么?