Я попробовал какое-то решение с 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
Мобильная версия