Я пытаюсь взаимодействовать с приложением по сети, которое использует простой протокол. Я должен отправить заголовок, который выглядит так:
2 байта = длина данных (включая тип запроса)
1 байт = Тип запроса
Я принимаю оба параметра как целые числа:
private static void WriteHeader(Stream buf, int length, int requestType) {
buf.Write(BitConverter.GetBytes(length), 0, 2);
buf.WriteByte((byte)requestType);
}
Я называю это так:
byte[] outBuf = new byte[256];
using (MemoryStream outStream = new MemoryStream(outBuf)) {
// Socket connection stuff here
WriteHeader(outStream, 1, 110);
sock.Send(outBuf);
// Receive stuff here, never returns
}
Я не получаю никаких исключений при вызове этого метода или отправке outBuf
через сокет, но сетевое приложение никогда не отвечает. Однако я могу запросить его у других программ, так что я вполне уверен, что это потому, что мой заголовок написан неправильно.
Я что-то не так делаю при записи значений?
РЕДАКТИРОВАТЬ: Добавлен код MemoryStream