Od ustanowienia połączenia poprzez wysyłanie danych.
-----------------------------------------SERWER----------------------------------------------------------
na początku warto dodać te biblioteki do naszego projektu:
using System.Net.Sockets;
using System.Net;
using System.Runtime.Serialization.Formatters.Binary;
teraz możemy przejść to utworzenia listener`a czyli klasy słuzacej do odbierania przychodzących do nas połączeń internetowych:
TcpListener listener = new TcpListener(IPAddress.Any,
1024); // nasz serwer
Uruchamiamy funkcję nasłuchową listenera instrukcją:
listener.Start();
Gdy mamy dobrze skonfigurowany nasz TcpListener kolej na klasę TcpClient który będzie przechowywał połączonych przez nas klientów. Możemy od razu do niej przypisać klienta gdy takowy się pojawi instrukcją:
TcpClient
newClient = listener.AcceptTcpClient();
Jest to metoda synchroniczna więc powyższa instrukcja będzie trwać aż do czasu gdy ktoś nie połączy się z nami. Istnieje jeszcze opcja asynchroniczna ale o niej w następnym "artykule".
Żeby móc się komunikować z innym clientem musimy pobrać jego strumień z klasy TcpClient:
NetworkStream
stream = newClient.GetStream();
Teraz musimy utworzyć 2 klasy: do wysyłania danych binarnych i ich odbierania(jeśli chcemy możemy korzystać tylko z jednej z nich albo typ binarny możemy zmienić na xml)
BinaryReader reader = new BinaryReader(stream);
BinaryWriter writer = new
BinaryWriter(stream);
Od teraz możemy komunikować się z klientem/serwerem poprzez funkcję w klasach i np.:
reader.ReadString()
writer.Write("wysyłam to co teraz napisałem");
Po skończeniu komunikacji zamykamy clienta instrukcją:
newClient.Close();
---------------------------------------CLIENT---------------------------------------------
---------------------------------------CLIENT---------------------------------------------
TcpClient client;
Tworzymy jej nową instancję:
client = new TcpClient();
a także adres serwera z którym chcemy się skomunikować:
IPEndPoint serverEndPoint = new
IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
IPEndPoint - opis klasy
następnie łączymy się z serwerem:
client.Connect(serverEndPoint);
a potem pobieramy strumień transmisji:
NetworkStream clientStream =
client.GetStream();
Komunikacja pomiędzy clientami została opisana w końcowej cześci Serwera więc nie będę do niej powracał.
Pozdrawiam.