Porty i Socket

0

Witam.

Chodzi mi o korzystanie z klasy socket badz tcplistener.
Krotko o co chodzi.

Wiem jak zrobci server tak zeby laczyc sie na danym porcie, powiedzmy 8000. Jak zrobic zeby klient laczyl sie na porcie 8001 (badz jakims innym ale nie losowym tylko okreslonym przeze mnie), tak zeby dane wysylane przez serwer szly wlasnie przez ten podany port.

Pozdrawiam.

0

a popatrzyles chociaz na konstruktory TcpListener ??

nie wiem czy tak bardzo boli wpisanie new TcpListener( i poczekanie na IntelliSense, albo wklepanie TcpListener w google i msdn. W PARAMETRZE PODAJE SIE NUMER PORTU !!

Wiec skoro masz u siebie 8000 i nie jest losowy (tak wynika z twojego tekstu), to za pewne musisz znalezc liczbe 8000 i zamienic ja na 8001

0

tak zgadzam sie z tym co piszesz, bo lacze sie na serwer 8000, ale port klienta jest losowy, jak sprawdzam na serwerze ip i port klienta to nie jest to 8000, a jest to losowy nr i wlasnie chodzi mi o to jak to zmienic...

0

192.168.0.1:8001 ? ustal adres ip i podajesz u klienta adres gdzie jest serwer

// przeczytałeś uważnie powyższego posta? nie port na który klient się łączy, tylko z którego to robi - Ł

0

afaik nie możesz wybrać na jakim porcie łączy się klient pod windowsem. a przynajmniej nie możesz bez zaawansowanego grzebania w systemie.
zobacz sobie przez tcpview porty, z których programy na twoim komputerze łączą się ze światem: są zawsze losowe.

0

znalazlem juz odpowiedz i mozna wybrac port na ktorym chcemy sie laczyc poprzez fukncje Bind.
Oto rozw. najpiere okreslamy nasze IPEndPoint, a nastepne bindujemy stworznego socketa.

IPEndPoint myEP = new IPEndPoint(IPAddress.Parse(192.168.1.100), int.Parse(8000));
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(myEP); 

tak czy inaczej dzieki.

0

o, fajnie dowiedzieć się czegoś nowego - do tej pory nie widziałem bind razem z connect w żadnym języku na żadnym systemie operacyjnym. fajnie :-)

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