czwartek, 14 listopada 2013

Socket in C# - łączenie i wysyłanie wiadomości do serwera


Ostatnio po raz pierwszy byłem zmuszony użyć klasy Socket pisząc testy jednostkowe sprawdzające komunikację między klientem a serwerem z użyciem Socketów. Standardowo można stworzyć nową instancję klasy Socket, następie wywołać Connect i po połączeniu z serwerem wysłać do niego odpowiednią wiadomość. Ja jednak postanowiłem skrócić sobie pracę używając klasy TcpClient, która generalnie jest pewnym "wrapperem" nad klasą Socket, dzięki której po prostu możemy sobie pisać szybciej i mniej. Przykładowo w konstruktorze tej klasy następuje połączenie poprzez socket z serwerem, więc już nie muszę wołać metody Connect(), co wydaje się być mega fajne. Dodatkowo klasa TcpClient ma właściwość Client, która zwraca typ Socket.

Sama komunikacja z klienta na serwer wygląda następująco:

using (Socket socket = new TcpClient(host, port).Client)
{
   byte[] msg = Encoding.UTF8.GetBytes("This is a test");
   byte[] bytes = new byte[256];
   int bytesSent = socket.Send(msg);
   Assert.IsTrue(bytesSent > 0);
   int bytesReceived = socket.Receive(bytes);
   Assert.IsTrue(bytesReceived > 0);
}

1 komentarz:

  1. Top 10 Best Slots to Play in Las Vegas - MapYRO
    Las Vegas 안성 출장마사지 Casino is one of the oldest, most prestigious, 안동 출장샵 most spectacular hotels in North 순천 출장마사지 America, but it's still a 남원 출장샵 good bet 포항 출장마사지 to get a look.

    OdpowiedzUsuń