Значение параметра $type в socket_read()

Я пытаюсь создать подключение сокета tcp/ip из приложения aC# к сценарию PHP 5.3 с использованием сокетов PHP. Приложение C# должно отправлять строки JSON в скрипт PHP.

Мой вопрос в отношении руководства по socket_read: что они означают:

"PHP_BINARY_READ (Default) - use the system recv() function.
Safe for reading binary data."

Что именно делает PHP_BINARY_READ и почему я должен использовать функцию recv() при использовании этого параметра?

Любая помощь высоко ценится.

2 ответа

Решение

Важной частью является то, что документация говорит о другом выборе:

  • PHP_NORMAL_READ - чтение останавливается на \n или же \r,

Выбирать PHP_NORMAL_READ если ваш сокет является линейно-ориентированным текстовым протоколом. Выбирать PHP_BINARY_READ если ваш сокет что-нибудь еще.

Это означает, что при использовании PHP_BINARY_READ этот системный вызов будет использоваться для чтения из нижележащего сокета. Замечание о безопасности для двоичных данных объясняется противопоставлением этому альтернативы, которая гласит:

PHP_NORMAL_READ - чтение останавливается на \n или \r.

Следовательно, если вы хотите читать по одной строке за раз, используйте PHP_NORMAL_READ. В противном случае используйте PHP_BINARY_READ (по умолчанию).

Другие вопросы по тегам