Serwer UDP

0

Witam

mam takie pytanie :)

czy jest mozliwosc po stronie "Serwera" odbierania wiadomosci od wybranego "Clienta" a nie od wszystkich polaczonych ??

powiedzmy że z "Serwerem" łączy się trzech "Client-ów" i chcę odbierać info tylko od jednego

Pzdr Andrzej

1

Jakiego serwera, jakiego clienta?

0

prosze o wyrozumialosc :) jak bede pisal bzdury :D

a wiec serwer :

UdpClient serwer;
IPEndPoint zdalnyIP;
int port = Convert.ToInt16(Port.Text);
zdalnyIP = new IPEndPoint(IPAddress.Any,0);
Byte[] odczyt = serwer.Receive(ref zdalnyIP);
string dane = Encoding.ASCII.GetString(odczyt);
Log.Text += dane+"\n";
serwer.Close();

Client:

UdpClient client;
int port = Convert.ToInt16(Port.Text);
client= new UdpClient("127.0.0.1",port);
Byte[] dane = Encoding.ASCII.GetBytes("text");
serwer.Send(dane, dane.Length);

i takich "Client-ow" ma 10 :)

i powiedzmy chcialbym odczytywac dane od trzeciego bezposrednio nie odczytujac wszystkich

pzdr Andrzej

0

Chyba albo różne porty, albo klient wysyła serwerowi jakiś swój numer identyfikacyjny.

0

możesz to rozwiązać w taki sposób że klienci wysyłają na serwer dane w postaci takiego datagramu przykladowo "port;adresIP;komenda;"
wtedy mozesz sobie ich zapamiętać gdzieś. i będziesz mogł wysyłać wybiórczo lub filtrować; Ale jesli chodzi o odbieranie to dlaczego miałbys wyłączyć mozliwość wysyłąnia wiadomości innym uzytkownikom?

0

to nie chodzi o wylaczenie mozliwosci wysylania.

zalezy mi na szybkosci odbioru danych
i dlatego dla kazdego klienta chcialem stworzyc osobny watek do odbioru
a tak pozostaje odbior w jednym i filtrowanie ??

nie zakladajac nowego watku mam pytanie czy Receive() przy danych od Clienta blokuje caly program czy tylko dany watek ??

pzdr Andrzej

0

moze sprobuj stworzyc to na TCPClientach, wtedy będziesz miał socketa dla kazdego połączonego. I dalej poprzez stream-a chociazby będziesz mogł odbierac wiadomosc od clienta czy wysyłać.
A receive UdpClienta raczej nie zablokuje Ci całego programu, jesli jest to odpalone w innym wątku. Zresztą Powinien być chyba jakiś podgląd, czy jest coś do odebrania, ale głowy nie dam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.