#c# #sockets #tcp #wireshark
Вопрос:
Я пытаюсь отправить символ ASCII 6 (подтверждение) через сокет. Сокет подключен и без проблем отправляет и получает другую информацию.
Я отправляю подтверждение следующим образом:
_socket.Send(data, data.Length, 0);
Там data
есть тип byte[]
, значение [0]
которого равно 6 (как и должно быть).
Согласно socket workbench (инструменту, предложенному заказчиком), ничего не отправляется.
По словам Вирешарда, что-то отправляется, но сразу же приходит ответ, в котором говорится, что что-то не так:
Скриншот Wireshark подтверждения, которое я отправляю:
Снимок экрана Wireshark с ответом, который я получаю:
IP-адрес, заканчивающийся на 236, — это мой локальный компьютер.
IP-адрес, заканчивающийся на 160, является хостом, на который я отправляю подтверждение.
Согласно цветам, используемым Wireshard, я полагаю, что что-то ужасно неправильно, но у меня недостаточно знаний о сети, чтобы решить эту проблему.
Кто — нибудь знает, что я должен сделать, чтобы успешно отправить подтверждение?
Кстати, это не вопрос для суперпользователя (об использовании существующей компьютерной программы), речь идет о том, как разработать программу: скриншоты Wireshark являются чисто пояснительными.
Заранее спасибо
Комментарии:
1. Получение ПЕРВОГО означает, что другой компьютер сказал: «О чем ты говоришь? Я не знаю этой розетки». Обычно это происходит, если программа закрывает сокет, завершает работу, выходит из строя или компьютер перезагружается.
2. В этом нет ничего плохого как такового. Мой собственный опыт подобной ошибки (я видел первый, на другом конце утверждали, что ничего не было получено) состоял в ошибочных фильтрах программного обеспечения AV.
3. Сокету все равно, что вы отправляете, все это просто произвольные данные приложения. Но, может быть, получателю будет не все равно. Вы УВЕРЕНЫ
0x06
, что для начала должны отправить один байт? Какой протокол вы внедряете?