У меня есть рабочий Java-сокет, но мне нужна помощь, связанная с ним с PHP.PHP socket Соединение отказано (сервер Java)
Моя проблема: я могу подключиться к соке Java из Java-клиента и отправлять/получать сообщения, но когда я пытаюсь подключиться к одному и тому же сокету с PHP, он не будет подключаться.
Это то, что у меня есть для сокета в то время цикла: (имейте в виду, что это часть работы)
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;
}
Running, что выходы: «Ошибка: Соединение отклонено»
Кто-нибудь знает, как я могу выяснить, почему PHP не может подключиться но клиент Java может? Они оба обращаются к сокету извне, и поскольку клиент Java может подключиться, он не блокируется. Есть ли какой-то протокол, который я забыл установить?
Я посмотрел на десятки других людей с тем же вопросом, но никто не дал ответа.
У меня нет доступа к php.ini, но я был в состоянии для запуска 'phpinfo (4)', чтобы просмотреть все параметры. allow_url_fopen - «Вкл.», а disable_functions не имеет значения. –