C# - Odbieranie danych tylko od danego ip w UdpClient.

Witam. Mój problem jest taki: zacząłem robić prostą grę multiplayer i realtime. dla każdego gracza, który się zaloguje przydzielam osobny wątek. I tu jest moje pytanie. Gdyby serwer miał obsłużyć 5 graczy, to gracz nr 2 wysyłając do serwera informacje o swoim ruchu nadałby je na wszystkich graczy (są na tym samym porcie). Przy wysyłaniu informacji nie ma problemu, bo sa one ukierunkowane na dane IP. Czy można w klasie UdpClient, która będzie ustawiona na serwer: [code]UdpClient udp = new UdpClient(8080);[/code] ustawić odbieranie danych tylko z danego IP?? Bardzo proszę o pomoc, to dla mnie ważny projekt. P.S.: Mam jeszcze jeden problem :/. Mianowicie, mam taki kod: [code] void tracking() { UdpClient server = new UdpClient(1234); while (true) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); Byte[] receivedBytes = server.Receive(ref RemoteIpEndPoint); string nad = Encoding.Unicode.GetString(receivedBytes); users[i] = new Thread(new ThreadStart(test)); users[i].Start(); i++; } } public void test() { string login; string pass; string ip; UdpClient logini = new UdpClient(1234); while (true) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); ip = RemoteIpEndPoint.Address.ToString(); Byte[] receivedBytes = logini.Receive(ref RemoteIpEndPoint); login = Encoding.Unicode.GetString(receivedBytes); break; } while (true) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); Byte[] receivedBytes = logini.Receive(ref RemoteIpEndPoint); pass = Encoding.Unicode.GetString(receivedBytes); break; } MessageBox.Show(ip + "|" + login + "|" + pass); } [/code] Mam tu otworzone dwie klasy UdpClient nasłuchujące na tym samym porcie. Jedna znajduje się w metodzie "tracking", a druga w metodzie "test". Obie te metody są "włączone" w wątkach (tracking w wątku tracker, a test w wątku/wątkach users). Myślałem, że mogą być dwa gniazda w różnych wątkach ustawione na takie same porty, ale wyskakuje mi wyjątek, że może być max. jedno gniazdo. Wie ktoś jak to rozwiązać? Być może jest to powiązane z moim pierwszym problemem.

Odpowiedzi: 0

TheCCAY
Dodano:
10.12.2011 22:10:30
Komentarzy:
0
Strona 0 / 0