Я использую netty API для создания Java-сервера, который отправляет, если клиентская программа отправляет на сервер что-то вроде 5. Это целое число с 4 байтами. Я думаю, что он должен быть таким же, как писать целое число в OutputStream. Поэтому я хочу получить целое число php. Но если я вызываю socket_read, он ничего не выводит, потому что он не преобразует 4 байта в целое число. Он просто использует это как текст.
Если я отправлю char, он работает, поэтому мне нужно использовать способ php для его преобразования.
Или было бы лучше всего преобразовать все в текстовые клиенты, так что все будет основано на тексте. Я думаю, может быть, мне придется придерживаться текстового или двоичного вывода.
EDIT: Другой вопрос, связанный с этим, скажем, у меня есть 4 байта в java. Как я могу построить Integer? Должен ли я конкатцировать 4 байта?
Пример:
Байт 1: 00000000
Байт 2: 00010000
Байт 3: 00000101
Байт 4: 00000001
Результат: 00000000 00010000 00000101 00000001
Правильно ли это?
Вероятно, вы хотите использовать функцию распаковки . Что-то вроде:
$data = socket_read($sock,4); $x = unpack("N",$data);