PHP в Java — сокеты

Я пытаюсь общаться с PHP на Java с помощью сокетов. У меня есть следующий код Java:

private static ServerSocket socket;

private static Socket connection;
private static String command       = new String();
private static String responseStr   = new String();

private static int port = 2500;

public static void main(String args[])  {
System.out.println("Server is running.");

try  {
socket = new ServerSocket(port);

while (true)  {
connection = socket.accept();

InputStreamReader inputStream = new InputStreamReader(connection.getInputStream());
DataOutputStream response = new DataOutputStream(connection.getOutputStream());
BufferedReader input = new BufferedReader(inputStream);

command = input.readLine();
response.writeBytes(responseStr);
response.flush();
}
} catch (IOException e)  {
System.out.println("Fail!: " + e.toString());
}
}

У меня есть следующий код PHP:

<?php
$socket = stream_socket_server("tcp://192.168.0.10:2500", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}

Я запускаю Java-приложение, которое запускается нормально. Когда я запускаю php, я получаю следующую ошибку:

An attempt was made to access a socket in a way forbidden by its access permissions. (0)

Я искал в Google и попробовал все решения, которые смог найти, хотя ничего не помогло. Я перезапустил обе машины и отключил брандмауэр, ни одна не работала.

Я не уверен, куда идти отсюда.


[обновление от комментария:]

192.168.0.10 — это машина с приложением java и веб-сервером. Я подключаюсь с другой машины 192.168.0.7

0

Решение

Вы можете создать сокет только на том компьютере, на котором выполняется код.

Так что, если код PHP выполняется на 192.168.0.7, то выполните:

$socket = stream_socket_server("tcp://192.168.0.7:2500", $errno, $errstr);
1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector