Еще нужно следить за тем, чтобы на любом брандмауэре, на котором вы работали, была установлена настройка правил, разрешающая обмен данными через порт 9998.
Если бы мне пришлось угадывать (нужно было бы узнать ваш принимающий код C #, чтобы знать), похоже, вы пытаетесь получать пакеты UDP, но используете протокол TCP на стороне клиента. (Или я могу просто неправильно понять текст вашего скриншота.)
Нет необходимости «прослушивать» соединение при использовании UDP. У пакетов UDP нет протокола подключения / отключения. Они также не гарантируют, что пакеты будут получены в том же порядке, в котором они были отправлены.
попробуйте использовать что-то подобное в вашем клиенте C # и посмотрите, получите ли вы данные.
var udpClient = new System.Net.Sockets.UdpClient(9998);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);