Отправка данных из Java в php с помощью сокетов — всегда NULL

Я пытаюсь общаться между PHP и Java Unsing сокетов. Оба работают на одной машине. Отправка данных из php в java работает довольно хорошо. Но наоборот нет.

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

  • Брандмауэр отключен
  • Роли входящего и исходящего портов для порта 4308 установлены для разрешения подключения.
  • Браузер: Chrome и Firefox
  • Сервер UniServer с использованием Apache

Очень простой пример, который я использую сейчас:

Java (отправитель):

public static void testSend() throws UnknownHostException, IOException{
Socket socket = null;
OutputStreamWriter osw;
String str = "Hello World\n";
socket = new Socket("localhost", 4308);

osw = new OutputStreamWriter(socket.getOutputStream(), "UTF-8");
osw.write(str, 0, str.length());
osw.flush();

socket.close();
}

Я не уверен, нужен ли osw.flush () (я пробовал с и без).

php (получатель):

<?php
echo "start\n";

$address = 'localhost';
$port = 4308;

$mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($mysock,$address, $port) or die('Could not bind to address');
socket_listen($mysock, 5);
$client = socket_accept($mysock);

// read 1024 bytes from client
$input = socket_read($client, 1024, PHP_NORMAL_READ);

var_dump($inpit);

socket_close($client);
socket_close($mysock);

echo "end";
?>

Ответ из кода php:

start NULL end

Когда я наблюдаю за портом в TCPView, я вижу, что скрипт php прослушивает этот порт, когда я затем запускаю java-программу, она перестает слушать и возвращает NULL. Это означает, что скрипт php заметил соединение, но не получил строку «Hello World \ n».

1

Решение

Задача ещё не решена.

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

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

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