Привет всем. У меня проблема с c #, и вполне возможно, что это отладчик, но я довольно новичок в c # (не нов в c / c ++)
Там код ниже. Вот проблема, с которой я столкнулся.
Я получаю UDP, не гарантированная доставка, конечно. Я ожидаю, что случайный пакет будет сброшен в сети или Windows, если я наполняю канал. Однако проблема, с которой я столкнулся, заключается в том, что после создания нового сокета я пытаюсь отправить пакет с 1 байтом данных. Этот пакет отброшен. Я могу попытаться отправить его дважды, оба раза оно пропало. Тем не менее, если я отправляю данные на 1 тыс., Это проходит. Если я создаю другой сокет (нажав кнопку еще раз), все работает нормально. Теперь вот странная вещь. Если я остановлю и перезапущу отладку проекта без внесения каких-либо изменений в источник, все мои пакеты будут отправлены без проблем. Кажется, это происходит только при первом запуске после сборки проекта. Во всяком случае, вот код, чтобы воспроизвести проблему. После нескольких часов поиска и чтения я в растерянности.
edit: хотел уточнить, что я использую wireshark и вижу, что пакеты отброшены.
private void button1_Click(object sender, EventArgs e)
{
byte[] a = new byte[1] {0x00};
byte[] b = new byte[1024];
for(int i = 0; i < 1024; i++)
{
b[i] = 0xFF;
}
IPEndPoint _ipep = new IPEndPoint(IPAddress.Parse("192.168.200.202"),5546);
Socket _server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
_server.SendTo(a, 1, SocketFlags.None, _ipep);
_server.SendTo(a, 1, SocketFlags.None, _ipep);
_server.SendTo(b, 1024, SocketFlags.None, _ipep);
}