To dobry samouczek dla początkujących, którzy chcą zapoznać się z pakietem GO i sposobem obsługi żądań.
Rozpoczęcie pracy
Chociaż samouczek jest bardzo przyjazny dla początkujących, zalecamy podstawy pracy z językiem Go.
Zrozumienie, jak pracować z pakietami Go, jest również bardzo korzystne.
Pakiet netto Golang
Pakiet netto jest częścią standardowej biblioteki Go. Służy do dostarczania przenośnego interfejsu do pracy z operacjami sieci we/wy sieciowej. Obejmuje to gniazda domeny TCP/IP, UDP, DNS i UNIX.
Użyjemy tego pakietu do utworzenia serwera TCP.
Budowanie prostego serwera TCP
Pozwól nam teraz wejść do kodu i dowiedz się, jak budować serwer TCP. Zacznij od utworzenia pliku Go, aby napisać kod:
Mkdir TCP-ServerEdytuj plik z wybranym edytorem tekstu i wprowadź poniższe wiersze:
Pakiet MainPowyższe linie definiują pakiet jako samodzielny pakiet i importuje wymagane pakiety.
Następnym krokiem jest zdefiniowanie parametrów dla naszego serwera. Możemy je zdefiniować jako zmienne globalne jako:
const (Następnym krokiem jest słuchanie przychodzących połączeń. Możemy to zrobić za pomocą sieci.Metoda słuchania. Składnia funkcji jest taka jak pokazano:
FUNC Słuchaj (sieć, ciąg adresu) (słuchacz, błąd)Bierze typ połączenia (taki jak TCP, TCP4, TCP6, UNIX lub UNIXPACKET), hosta i port połączenia. Funkcja zwróci połączenie słuchania na określonym adresie.
Przykładowy kod jest taki jak pokazano:
Słuchaj, err: = net.Słuchaj (typ, host+":"+port)Sprawdzamy, czy słuchacz napotyka jakiekolwiek błędy, jeśli prawda, rejestruje komunikat o błędzie i istnieje z kodem stanu 1.
Musimy również zamknąć słuchacza po zakończeniu serwera. Możemy to zrobić za pomocą słowa kluczowego odroczenia i metody zamknięcia
Słuchać.Zamknąć()Następnym krokiem jest ciągłe słuchanie połączeń. Możemy to zrobić za pomocą pętli dla:
DoAby obsłużyć wszelkie przychodzące żądania, możemy utworzyć funkcję jako:
FUNC HANDEDINDACTINGREQUEST (CONN NET.Conn)W powyższym przykładzie definiujemy funkcję, która przyjmuje conn typu netto.Conn struct jako parametr.
Następnie definiujemy nowy bufor do przechowywania przychodzących danych o rozmiarze 1024. Następny blok odczytuje bieżący czas za pomocą czasu.Teraz () pakiet.
Za pomocą metody zapisu możemy napisać czas i ciąg do klienta. Na koniec ustawiliśmy Conn.Zamknij (), aby zamknąć połączenie.
Pełny kod źródłowy jest jak pokazano:
Pakiet MainSerwer kompilacji i uruchom
Po zakończeniu zapisz plik i uruchom poniższe polecenie, aby skompilować słuchacza w binarnym:
Go Build Server.IśćNastępnie uruchom serwer jako:
./serwer.exePowyższe polecenie powinno uruchomić serwer TCP i możemy nawiązać z nim połączenia.
Testowanie serwera TCP
Aby przetestować serwer TCP, możesz użyć NetCat za pomocą polecenia:
NC LocalHost 9001Następnie wyślij wiadomość jako:
Cześć!Serwer powinien odpowiedzieć HI i bieżącą datą i godziną.
Witaj ponownie!Wniosek
I po tym zakończyliśmy nasz samouczek. Ten przewodnik przedstawia podstawy pracy z pakietem netto poprzez tworzenie serwera TCP.
Dziękuje za przeczytanie!