2016-03-03 3 views
0

Мне нужно перевести этот код, чтобы добавить большой заголовок 2 байта. Теперь он работает без заголовка, но я немного потерял его, как добавить его.Добавить заголовок для подключения к серверу/клиенту

TcpClient client = new TcpClient(ipNum, portNum); 
NetworkStream nw = client.GetStream(); 
byte[] send = Encoding.UTF8.GetBytes(userInput); 

Console.WriteLine("Sending : " + userInput); 
nw.Write(send, 0, send.Length); 

byte[] readBytes = new byte[client.ReceiveBufferSize]; 
int bytesRead = nw.Read(readBytes, 0, client.ReceiveBufferSize); 
Console.WriteLine("Received : " + Encoding.UTF8.GetString(readBytes 0, readBytes); 
+0

выполните поиск google в разделе «Добавление заголовка в tcp-клиент», тем временем проверьте это - http://stackoverflow.com/questions/19523088/create-http-request-using-tcpclient – MethodMan

ответ

1

UTF8Encoding поддерживает добавление этого заголовка. Создайте экземпляр этого класса вручную и используйте конструктор, который позволяет указать, что вы хотите заголовок спецификации.

Обратите внимание, что ваш прочитанный код сломан, потому что вы можете получить менее одного «сообщения» с удаленной стороны. Вы можете получить только один байт за раз. client.ReceiveBufferSize также не имеет смысла. Просто выберите размер статического буфера, например 4096.

Смежные вопросы