我正在尝试连接到我的公共IP地址,但没有成功。
使用 - http://www.yougetsignal.com/tools/open-ports/检查端口是否已打开 并且来自此网站的请求(http://www.rexswain.com/httpview.html)有效。
我的问题在于下面的PHP代码。这在我的本地网络上使用时常常工作正常。现在我在网络服务器上使用它。
问题可能在于Web服务器允许发送请求还是我做错了什么?
$ip = "MYIP";
$port = "600";
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//socket_bind($sock, $ip, $port) or die ("cannot bind to address.");
echo($ip);
$state = socket_connect($sock,$ip, $port);
$error = socket_last_error();
$errorMsg = socket_strerror($error);
echo($errorMsg);
编辑:我的评论中的错误来自socket_bind评论(代码编辑输出错误)
错误:连接超时
答案 0 :(得分:1)
这是错误的:
socket_bind($sock, $ip, $port) or ...
$state = socket_connect($sock,$ip, $port);
绑定绑定套接字的本地地址,绑定并连接到同一端口没有意义。通常,您不希望在客户端模式下绑定。完全删除该行,然后您可能会收到真正的错误。