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 -
- Pakiety Java
- Kopiuj konstruktora w Javie
- Scal sortowanie w Javie
- Przewodnik po najlepszych kompilatorach Java
- Przykład pakietu Java | Przykład pracy i kodowania