PHP-сокет Соединение отказано (Java-сервер)

У меня есть работающий сокет 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

Решение

Вы смотрели в php.ini, разрешен ли fsockopen?

1 、 php.ini, ищите строку: disable_functions = fsockopen
2 、 php.ini, см. Allow_url_fopen = On или allow_url_fopen = Off

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]