PHP套接字连接被拒绝(Java服务器)

时间:2016-07-08 06:23:05

标签: java php serversocket php-socket

我有一个可用的Java套接字,但是我需要一些帮助用PHP连接它。

我的问题:我可以从Java客户端连接到Java套接字并发送/接收消息,但是当我尝试使用PHP连接到同一套接字时,它将无法连接。

这就是我在while循环中对套接字的看法:(请记住这部分有用)

Socket socket = serverSocket.accept();
System.out.println("Got connection");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String cmd = in.readLine();
System.out.println("Received: " + cmd);
String response = "It worked. Received: " + cmd;
out.println(response);
...

只是为了表明另一半有效,这就是客户:

Socket socket = new Socket("<ip>", port);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("test msg");
out.flush();
System.out.println("Sent message");
String r = in.readLine();
System.out.println("Response: " + r);

现在对于不起作用的部分。
这就是我尝试与PHP连接的方法:

$s = fsockopen('<ip>', $port, $errno, $errstr, 25);
if (!$s) {
    echo 'Error: '.$errstr;
    die;
}

运行输出:“错误:连接被拒绝”

有谁知道我如何诊断为什么PHP无法连接但Java客户端可以连接?它们都在外部访问套接字,并且由于Java客户端可以连接它,因此它不会被阻止。有没有我忘记设置的协议?

我看过几十个有同样问题的人,但没有人提供答案。

1 个答案:

答案 0 :(得分:0)

如果允许使用fsockopen,你有没有看过php.ini?

1,php.ini,查找行:disable_functions = fsockopen 2,php.ini,参见allow_url_fopen = On或allow_url_fopen = Off