Wprowadzenie do programowania gniazd w Javie

World Wide Web i Internet zmieniły sposób, w jaki żyjemy i komunikujemy się ze sobą oraz sposób prowadzenia nauki, inżynierii i handlu. Współczesne życie jest całkowicie napędzane lub skupione wokół Internetu. Firmy nieustannie poszukują nowych sposobów produkcji i komunikacji z różnymi usługami w nowy sposób wprowadzający innowacje. W tym artykule omówimy programowanie gniazd w Javie.

Gniazda zapewniają interfejs do programowania sieci warstwy transportowej modelu OSI. Komunikacja sieciowa z wykorzystaniem gniazd jest wszechobecna w Internecie. Ponadto program napisany w Javie może komunikować się z programem napisanym w języku innym niż Java, takim jak C, C ++, Python itp.

Metody klasy gniazd

Metody klasy gniazd znajdują się w Javie. Gniazdo musi być numerem portu, więc TCP rozpoznaje numer portu, w którym dane mają zostać wysłane. Java zapewnia zestaw klas, z których jedną jest java.net. Służy to do szybkiego opracowywania aplikacji sieciowych. Kluczowe klasy, interfejsy i wyjątki obecne w pakiecie java.net upraszczają złożoność tworzenia programów klienckich i serwerowych:

Klasy to:

  • Moduł obsługi treści
  • Pakiet datagramów
  • Gniazdo datagramu
  • Datagram Socket Imp 1
  • Połączenie HTTP URL
  • I adres sieciowy
  • Gniazdo Multicast
  • Gniazdo serwera
  • Gniazdo elektryczne
  • Socket Imp 1
  • URL
  • Połączenie URL
  • Koder URL
  • Moduł obsługi strumienia URL

Interfejsy to:

  • Fabryka obsługi treści
  • Mapa nazw plików
  • Socket Impl Factory
  • Fabryka obsługi strumienia adresów URL

Wyjątkami są:

  • Bind Exception
  • Połącz wyjątek
  • Wyjątek nieprawidłowego adresu URL
  • Brak wyjątku trasy do hosta
  • Wyjątek protokołu
  • Wyjątek gniazda
  • Nieznany wyjątek hosta
  • Nieznany wyjątek usługi.

Programowanie gniazd TCP / IP

Istnieją dwie klasy używane z pakietu java.net, które są używane do tworzenia programów. Oni są:

  • Gniazdo serwera
  • Gniazdo elektryczne

Program serwera komunikuje się za pośrednictwem strumieni wejściowych i wyjściowych. Jeśli pojawi się prośba o połączenie, wówczas pojawia się nowe gniazdo, które nawiązuje połączenie.

Metoda 1 - Utworzenie programu gniazda serwera

Istnieją różne kroki tworzenia programu gniazda serwera w Javie. Proste kroki tworzenia programu gniazda serwera są następujące:

Krok 1 - Serwer gniazd jest otwarty

Gniazdo serwera Ogólne = nowe gniazdo serwera (PO)

Tutaj PO jest numerem portu.

Tutaj numer portu jest przypisany do sieci serwerów, przez które będzie się komunikował za pomocą strumieni wejściowych / wyjściowych.

Krok 2 - Zgłoszenie klienta, na które musimy cierpliwie czekać

Socket General = serwer. zaakceptować()

Tutaj serwer. accept () czeka na klienta, a nazwa gniazda to Client tutaj.

Krok 3 - Utworzenie strumieni we / wy umożliwia nawiązanie połączenia

Strumień danych wejściowych = nowy strumień danych wejściowych (klient. Pobierz strumień wejściowy ());

Strumień wyjściowy danych os = nowy strumień wyjściowy danych (klient. Pobierz strumień wyjściowy ());

Strumień wejściowy jest, a strumieniom wyjściowym są przypisywane ich Get Input Stream () i są one wywoływane odpowiednio.

Krok 4 - Nawiązano kontakt z klientem

Odbierz od klienta: String hello = br. Czytaj linię();

Wyślij to do klienta: br. Napisz bajty („Jak się masz \ n”);

Poniższy kod komunikuje się z klientem odbierającym i wysyłającym do klienta żądania.

Krok 5 - W końcu gniazdo jest gotowe do wyjścia

Wreszcie funkcja zamknięcia gniazda służy do zamykania i kończenia programowania gniazda.

Prosty przykład gniazda serwera pokazano poniżej:

// Prosty program do łączenia się z serwerem.

import java.net.*;
import java.io.*;
public class SimpleMachine (
public static void main(String args()) throws IOException (
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close(); )
)

Metoda 2 - Utworzenie prostego programu gniazda serwera

Teraz zobaczymy prosty program kliencki w Javie. Kroki tworzenia prostego programu klienckiego w Javie pokazano poniżej:

Krok 1 - Wykonanie obiektu Socket

Socket client = new Socket (server, port_id)

Serwer i identyfikator portu są połączone, to znaczy serwer jest podłączony do identyfikatora portu.

Krok 2 - Tworzenie strumieni wejściowych / wyjściowych

is = nowy strumień danych wejściowych (client.getInputStream ());

os = nowy strumień danych wyjściowych (client.getOutputStream ());

Strumień wejściowy jest, a strumień wyjściowy jest używany do komunikacji z klientem.

Krok 3 - Strumienie wejściowe / wyjściowe są tworzone do rozmowy z klientem

Dane są odczytywane z serwera: String hello = br. Czytaj linię();

Wyślij dane na serwer: br.writeBytes („Jak się masz \ n”)

Ten krok komunikuje się z serwerem. Strumień wejściowy i wyjściowy komunikują się z serwerem.

Krok 4 - Po zakończeniu zamknij gniazdo

Ta funkcja zamknie klienta, gdy zostanie w końcu wykonana.

Przykład prostego programu do obsługi gniazd serwera pokazano poniżej

// Prosty program dla klienta

import java.net.*;
import java.io.*;
public class SimpleMachineClient (
public static void main(String args()) throws IOException
(
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host", 1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
)
)

Wniosek - Programowanie gniazd w Javie

  • Programowanie z użyciem gniazd jest bardzo przydatne w Javie i w każdym innym języku programowania, ponieważ program napisany w Javie może łączyć się z programem napisanym w C lub C ++.
  • Innymi słowy, język programu używającego gniazd nie ma znaczenia, kiedy musi istnieć połączenie między nimi.
  • W tym artykule widzieliśmy w zasadzie przykład Simple Server i Simple Client, w którym istnieje połączenie między gniazdem serwera, a w drugim połączenie między gniazdem serwera.
  • Użyliśmy do tego samego programowania TCP / IP. Istnieje jednak wiele technik programowania, takich jak techniki programowania UDP i techniki programowania adresów URL. W tym artykule nie widzieliśmy przykładów takich przypadków. Naciskaliśmy na technikę programowania TCP / IP.

Polecane artykuły

Jest to przewodnik po programowaniu gniazd w Javie. Tutaj omawiamy metody klasy gniazd z programem Java. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Pakiety Java
  2. Kopiuj konstruktora w Javie
  3. Scal sortowanie w Javie
  4. Przewodnik po najlepszych kompilatorach Java
  5. Przykład pakietu Java | Przykład pracy i kodowania