Jak rozróżnić adres pakietu udp przychodzącego do komputera w c#

0

Witam,

Mam taki problem, odbieram pakiety udp od kompa, właściwie to chciałbym odbierać pakiety od kilku komputerów z ustawionymi statycznymi adresami IP moja maszyna ma też ustawiony pewien adres ip. Jak odbierać pakiety od kilku komputerów poprzez protokół udp na komunikację z jednym adresem nie mam problemów jednak jak odbierać od wielu, to ja nie wiem. Definicja klasy UdpClient pozwala na powiązanie instancji z jednym konkretnym adresem IP oraz portem. Próbowaliście coś takiego robić ?

0

Generalnie jak uruchomisz usługę UDP na SerwerzeA oraz KlientB podłączy się do niej to pomimo, że protokół UDP jest bezpołączeniowy to zawsze na SerwerzeA masz widoczne wiązanie:
adres IP (SerwerA) - port nasłuchu (SerwerA) - adres IP (KlientB) - wysoki port z którego inicjowane jest połączenie (KlientB)
i zdaje się po tym wiązaniu możesz rozpoznawać skąd dany pakiet przychodzi. Możesz to sobie zaobserwować netstatem tylko trzeba wylistować połączenia udp.

0

Cześć na razie potrzebuje odbierać dane od dwóch klientów, czy takie coś przejdzie jak to to będzie odbieranie na zmianę od jednego i drugiego.

 private void recv1()
        {
            try
            {
                IPEndPoint RemoteIpEndPoint1 = new IPEndPoint(IPAddress.Parse(Properties.Settings.Default.adres_komputera_1), 49000);
                IPEndPoint RemoteIpEndPoint2 = new IPEndPoint(IPAddress.Parse(Properties.Settings.Default.adres_komputera_2), 49000);

                byte[] received1 = Client1.Receive(ref RemoteIpEndPoint1);
                byte[] received2 = Client1.Receive(ref RemoteIpEndPoint2);

                PrzetwarzajRamke1(received1);
                PrzetwarzajRamke2(received2);


                if (zamknijWatek == false)
                {
                    recv1();
                }

            }
            catch (Exception exc)
            {
               Debug.Console.Write(exc.Message().ToString());
            }
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1