Я хочу отправлять сообщения JSON из скрипта PHP в приложение C # по сетевому соединению, используя PHP Sockets .
Обычно для двоичных протоколов первые 4 байта каждого сообщения должны быть целым числом, которое представляет длину (сколько байтов) сообщения.
В C # я добавляю к каждому сообщению целое число, которое сообщает длину сообщения следующим образом:
byte[] msgBytes = UTF8Encoding.UTF8.GetBytes("A JSON msg");
byte[] prefixBytes = BitConverter.GetBytes(msgBytes.Length);
byte[] msgToSend = new byte[prefixBytes.Length + msgBytes.Length];
Buffer.BlockCopy(prefixBytes, 0, msgToSend, 0, prefixBytes.Length);
Buffer.BlockCopy(msgBytes, 0, msgToSend, prefixBytes.Length, msgBytes.Length);
Как я понимаю, в PHP функция socket_send принимает только строки. Итак, как я могу сделать такой же префикс в PHP 5.x?
Обновление: Я опубликовал дополнительный вопрос о том, как обрабатывать такие префиксные данные при получении из сетевого сокета.