C# programowanie sieciowe

Odpowiedz Nowy wątek
2011-08-20 19:57
Zoni
0

Witam, zaczynam dopiero z programowaniem w C# i chciałbym zrobić sobie taka prostą aplikacje sieciową która będzie składała się z serwera i klienta opartych na tcp. Ogólnie wiem już na jakiej zasadzie działają te połączenia napisałem sobie również prostą aplikacje która wygląda następująco
klient

TcpClient client = new TcpClient();
                client.Connect("localhost", 8081);
                NetworkStream stream = client.GetStream();
                //byte dane = (byte)textBox1.Text;
                stream.WriteByte(1);
                byte fromclient = (byte)stream.ReadByte();
                if (fromclient == 1) { label1.Text = "podlaczony"; }
                stream.Close();
                client.Close(); 

serwer

 TcpListener listener = new TcpListener(IPAddress.Any, 8081);
            listener.Start();
            TcpClient client = listener.AcceptTcpClient();
            NetworkStream stream = client.GetStream();
            IPEndPoint IP = (IPEndPoint)client.Client.RemoteEndPoint;
            listBox1.Items.Add("[" + IP.ToString() + "] : nawiazano polaczenie");
            byte fromclient = (byte)stream.ReadByte();
            if (fromclient == 1) { label1.Text = "polaczony"; }
            stream.WriteByte(1);
 
            listener.Stop(); 

I teraz chodzi mi o to czy jest możliwość żeby klient nie musiał wpisywać adresu IP serwera tylko po naciśnięciu "połącz z serwerem" program klient by się łączył z serwerem?

Pozostało 580 znaków

2011-08-20 20:55
0

pytanie niezrozumiałe. twój klient łączy się w tej chwili z serwerem localhost, jak jest w drugiej linijce. co rozumiesz przez „nie musiał wpisywać adresu IP serwera”?

Pozostało 580 znaków

2011-08-20 21:01
0

I teraz chodzi mi o to czy jest możliwość żeby klient nie musiał wpisywać adresu IP serwera tylko po naciśnięciu "połącz z serwerem" program klient by się łączył z serwerem?

Musisz założyć swój własny serwer (lub jakiś wykupić; ew.darmowy) ze stałym adresem i go na sztywno wpisać do programu.
Najlepiej byłoby założyć kilka na różnych serwerach, aby w razie, gdy jeden przestanie działać program łączył się z drugim (oczywiście, jeżeli nie robisz czegoś większego, to jeden powinien wystarczyć).


edytowany 1x, ostatnio: Patryk27, 2011-08-20 21:01

Pozostało 580 znaków

2011-08-20 21:33
gfdgfsdg
0

jeżeli serwer jest w tej samej sieci LAN to serwer może rozgłaszać swoją aktywność przez UDP Broadcast
wtedy możesz zrobić żeby klient wyłapywał aktywne serwery i dać userowi do wyboru jednym kliknięciem z którym chciałby się połączyć

jeżeli klienci mają być porozsiewani po świecie to jedyna opcja żeby istniał wspólny serwer (lub grupa serwerów) o stałym IP, lub stałym hoście (np dzięki dyndns.com) z którymi wszyscy klienci będą się łączyć

podziemie Internetu używa jeszcze jednej metody - istnieją boty, które siedzą na ustalonym kanale IRC - klient łączy się z tym kanałem IRC, rzuca znanym dla wtajemniczonych hasłem, a bot odpowiada adresem IP serwera na którym aktualnie znajdują się szukane treści

Pozostało 580 znaków

2011-08-21 07:41
Zoni
0
gfdgfsdg napisał(a)

jeżeli serwer jest w tej samej sieci LAN to serwer może rozgłaszać swoją aktywność przez UDP Broadcast
wtedy możesz zrobić żeby klient wyłapywał aktywne serwery i dać userowi do wyboru jednym kliknięciem z którym chciałby się połączyć

Być może nie do końca jasno opisałem cały problem ale właśnie chodziło mi o coś takiego żeby serwer rozgłaszał swoją aktywność a klienci wyłapywali aktywność serwera i podłączali się do niego. Czy mógłby ktoś trochę naprowadzić jak to zrobić?

Pozdrawiam

Pozostało 580 znaków

2011-08-21 19:52
fsdfgsdg
0
Zoni napisał(a)
gfdgfsdg napisał(a)

jeżeli serwer jest w tej samej sieci LAN to serwer może rozgłaszać swoją aktywność przez UDP Broadcast
wtedy możesz zrobić żeby klient wyłapywał aktywne serwery i dać userowi do wyboru jednym kliknięciem z którym chciałby się połączyć

Być może nie do końca jasno opisałem cały problem ale właśnie chodziło mi o coś takiego żeby serwer rozgłaszał swoją aktywność a klienci wyłapywali aktywność serwera i podłączali się do niego. Czy mógłby ktoś trochę naprowadzić jak to zrobić?

Pozdrawiam

http://bit.ly/nQqADC

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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