Что плохого в отправке «chr(6)» через сокет?

#c# #sockets #tcp #wireshark

Вопрос:

Я пытаюсь отправить символ ASCII 6 (подтверждение) через сокет. Сокет подключен и без проблем отправляет и получает другую информацию.

Я отправляю подтверждение следующим образом:

 _socket.Send(data, data.Length, 0);
 

Там data есть тип byte[] , значение [0] которого равно 6 (как и должно быть).

Согласно socket workbench (инструменту, предложенному заказчиком), ничего не отправляется.

По словам Вирешарда, что-то отправляется, но сразу же приходит ответ, в котором говорится, что что-то не так:

Скриншот Wireshark подтверждения, которое я отправляю:

Я посылаю Ак

Снимок экрана Wireshark с ответом, который я получаю:

Ответ от Ack

IP-адрес, заканчивающийся на 236, — это мой локальный компьютер.
IP-адрес, заканчивающийся на 160, является хостом, на который я отправляю подтверждение.

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

Кто — нибудь знает, что я должен сделать, чтобы успешно отправить подтверждение?

Кстати, это не вопрос для суперпользователя (об использовании существующей компьютерной программы), речь идет о том, как разработать программу: скриншоты Wireshark являются чисто пояснительными.

Заранее спасибо

Комментарии:

1. Получение ПЕРВОГО означает, что другой компьютер сказал: «О чем ты говоришь? Я не знаю этой розетки». Обычно это происходит, если программа закрывает сокет, завершает работу, выходит из строя или компьютер перезагружается.

2. В этом нет ничего плохого как такового. Мой собственный опыт подобной ошибки (я видел первый, на другом конце утверждали, что ничего не было получено) состоял в ошибочных фильтрах программного обеспечения AV.

3. Сокету все равно, что вы отправляете, все это просто произвольные данные приложения. Но, может быть, получателю будет не все равно. Вы УВЕРЕНЫ 0x06 , что для начала должны отправить один байт? Какой протокол вы внедряете?