yaras.pl

Szyfrowana komunikacja TCP w C#.

by on Dec.30, 2009, under .NET, Bezpieczeństwo

W drugiej części tego artykułu (pierwsza dotyczyła podstaw szyfrowania informacji) chciałbym zaprezentować podstawową implementację mechanizmów służących do komunikacji TCP. Mając podstawy dotyczące wymiany komunikatów będziemy mogli zająć się szyfrowaniem tej komunikacji.

Plan artykułu:

  1. Klient oraz serwer TCP w C# – czyli od czego zacząć.
  2. Wielowątkowy serwer TCP.
  3. Wysokopoziomowy system komunikacji.
  4. Podstawowe operacje szyfrowania w C#.
  5. Szyfrowanie komunikacji.

Klient oraz serwer TCP w C# – czyli od czego zacząć.

Transmission Control Protocol (w skrócie TCP) jest strumieniowym protokołem komunikacji między dwoma komputerami (więcej o TCP: wikipedia). Komunikacja ta odbywa się w ściśle określony sposób, który przedstawia poniższy diagram:

Cały proces można opisać następująco:

  1. Uruchomienie serwera i klienta.
  2. Podłączenie się klienta do serwera.
  3. Akceptacja klienta.
  4. Wymiana komunikatów.
  5. Rozłączenie.

Framework .NET udostępnia nam dwie klasy umożliwiające komunikację TCP:

  • TcpListener,
  • TcpClient.

Pierwsza z nich umożliwia utworzenie serwera, natomiast druga – podłączenie się do niego. Najprostszy serwer TCP można utworzyć za pomocą następującego kodu:

 TcpListener listener = new TcpListener(IPAddress.Any, 1234);
 listener.Start();

Wyjaśnienia mogą wymagać parametry konstruktora klasy TcpListener. Pierwszy z nich oznacza adres naszego serwera (jeśli nie ma dla nas znaczenia jaki adres lokalny zostanie przypisany to możemy użyć IPAddress.Any), natomiast drugi – port nasłuchu.

Mając już zalążek serwera możemy przygotować klienta:

 TcpClient client = new TcpClient();
 client.Connect("localhost", 1234);

Domyślny konstruktor klienta jest bezparametrowy. Druga instrukcja powoduje podłączenie się klienta do serwera. Uruchamiając dwa powyższe kody nawiązujemy komunikację między naszymi programami – punkt 1 i 2 komunikacji mamy za sobą.

Pages: 1 2 3 4 5 6

:, , , ,

4 Comments for this entry

1 Trackback or Pingback for this entry

Leave a Reply

You must be logged in to post a comment.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Archives

All entries, chronologically...