С# UdpCLient.Receive не получает никаких данных на другом компьютереC#

Место общения программистов C#
Ответить
Anonymous
 С# UdpCLient.Receive не получает никаких данных на другом компьютере

Сообщение Anonymous »

Привет, ребята, я разрабатываю приложение на C# с сервером и множеством клиентов, мне нужно, чтобы они взаимодействовать, в частности, сервер должен отправлять один пакет всем клиентам, это происходит в случайное время (он отправляет только пакет когда другая программа отправляет сигнал, который я фиксирую). Я не хотел использовать TCP, потому что он должен быть максимально быстрым и потому что у меня много клиентов (их может быть больше тысячи).

Я попробовал какое-то решение с UDP, широковещательной и многоадресной рассылкой, а также с циклической отправкой пакетов всем им по отдельности. Я тестировал его с 1 сервером и 2 клиентами, оба решения работают нормально, когда они находятся на одном компьютере, но когда я выкладываю его в Интернет (сервер на компьютере и клиент на другом компьютере в другой сети), программа не работает. больше не работаем, клиенты ничего не получают.

Отправитель:

Код: Выделить всё

private void send(string packet){

/* code to get the key to encript the data */

byte[] bytes = Encryptor.EncryptString(packet, key);

query = "SELECT ip FROM utenti WHERE ID  2";
List ips = SelectIPs(query);

foreach (string ip in ips){
if (ip == "")
continue;
UdpClient client = new UdpClient();
IPAddress address = IPAddress.Parse(ip);
IPEndPoint ipEndPoint = new IPEndPoint(address, 16759);
client.Send(bytes, bytes.Length, ipEndPoint);
client.Close();
}
}
Получатель:

Код: Выделить всё

private void receive(string packet){

receivingUdpClient = new UdpClient(16759);
RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("185.43.209.118"), 0);
byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);

/* code to get the key to decrypt */
string returnData = Encryptor.DecryptString(receiveBytes, key);

Console.WriteLine(returnData);
return;
}
Я опубликовал решение с циклом при отправке, но я также пробовал использовать широковещательную и многоадресную рассылку.

Любой предложение о том, что делать и почему я ничего не получаю, если они находятся на другом компьютере?

Подробнее здесь: https://stackoverflow.com/questions/324 ... nt-machine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»