Zjistěte vše o programování zásuvek v Javě

Programování Java Socket se používá pro komunikaci mezi aplikacemi běžícími na různých JRE. Programování Java Socket může být orientované na připojení nebo bez připojení.

Programování soketů v se používá pro komunikaci mezi aplikacemi, které běží na různých . Může být orientovaný na připojení nebo bez připojení. Celkově je soket způsob, jak navázat spojení mezi klientem a serverem. V tomto článku vám povím vše o programování zásuvek.

V tomto článku se zabýváme níže uvedenými tématy:





Co je Socket Programování v Javě?

Programování soketů je způsob propojení dvou uzlů v síti pro vzájemnou komunikaci. Jeden zásuvka (uzel) naslouchá na konkrétním portu v IP, zatímco jiný zásuvka natáhne se k druhému, aby vytvořil spojení.

Komunikace klient-server - Socket Programování v Javě - Edureka



Server tvoří posluchače zatímco klient osloví server. Zásuvka a zásuvka serveru se používají pro programování soketů orientovaných na připojení.

Nyní pochopíme základní koncept programování soketů, tj. Soket.

Co je Socket v Javě?

NA zásuvka v je jeden koncový bod obousměrného komunikačního spojení mezi dvěma programy spuštěnými v síti. A zásuvka je vázán na číslo portu, aby vrstva TCP mohla identifikovat aplikaci, na kterou jsou data určena k odeslání.



Koncový bod je kombinace IP adresy a čísla portu. Balíček v platformě Java poskytuje třídu,Zásuvkakterý implementuje jednu stranu obousměrného připojení mezi vaším programem Java a jiným programem v síti. Třída sedí nad implementací závislou na platformě a skrývá podrobnosti libovolného konkrétního systému z vašeho programu Java. Použitím třídy místo spoléhání se na nativní kód, vaše může komunikovat po síti způsobem nezávislým na platformě.

Nyní, když víte, co je Socket v Javě, pojďme se posunout dále a pochopit, jak klient komunikuje se serverem a jak server reaguje zpět.

Programování na straně klienta

V případě programování na straně klienta bude klient nejprve čekat na spuštění serveru. Jakmile je server funkční, odešle požadavky na server. Poté klient počká na odpověď ze serveru. To je celá logika komunikace mezi klientem a serverem. Nyní si podrobně vysvětlíme programování na straně klienta a na straně serveru.

převést objekt na pole php

Chcete-li iniciovat požadavek klienta, musíte postupovat podle níže uvedených kroků:

1. Navažte připojení

Prvním krokem je vytvoření připojení soketu. Soketové připojení znamená, že tyto dva počítače mají informace o vzájemném síťovém umístění (IP adrese) a portu TCP.

Zásuvku můžete vytvořit pomocí níže uvedeného příkazu:

Zásuvka zásuvky = nová zásuvka („127.0.0.1“, 5000)

třídění algoritmu c ++
  • Zde první argument představuje IP adresa serveru .

  • Druhý argument představuje TCP port . (Jedná se o číslo, které představuje, která aplikace by měla být spuštěna na serveru.)

2. Komunikace

Za účelem komunikace přes soketové připojení se pro vstup a výstup dat používají proudy. Po navázání připojení a odeslání požadavků musíte připojení ukončit.

3. Ukončení připojení

Jakmile je zpráva odeslána na server, je soketové připojení výslovně uzavřeno.

Nyní se podívejme, jak napsat program Java pro implementaci připojení soketu na straně klienta.

// Program Java pro import ClientSide java.net. * Import java.io. * veřejná třída ClientProgram {// inicializace soketu a vstupních výstupních toků private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // konstruktor vložit IP adresu a veřejný port Klient (adresa řetězce, int port) {// navázat spojení vyzkoušet {socket = new Socket (address, port) System.out.println ('Connected') // vezme vstup z terminálu input = new DataInputStream (System.in) // odešle výstup do zásuvky out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // řetězec pro čtení zprávy ze vstupu String line = '' // pokračujte ve čtení, dokud není zadán 'Over' while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (řádek)} chytit (IOException i) {System.out.println (i)}} // zavřít připojení vyzkoušet {input.close () out.close () socket.close ()} chytit (IOException) i ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Pojďme nyní implementovat programování na straně serveru a pak se dostaneme k výstupu.

Programování na straně serveru

V zásadě server vytvoří instanci svého objektu a počká na požadavek klienta. Jakmile klient odešle požadavek, server bude komunikovat zpět s odpovědí.

Chcete-li kódovat aplikaci na straně serveru, potřebujete dvě zásuvky a jsou následující:

  • NA ServerSocket který čeká na požadavky klienta (když klient vytvoří nový Socket ())

  • Prostý starý zásuvka pro komunikaci s klientem.

Poté musíte s klientem komunikovat s odpovědí.

Sdělení

getOutputStream () metoda se používá k odeslání výstupu přes soket.

Ukončete připojení

Jakmile je vše hotové, je důležité ukončit připojení uzavřením soketu i vstupních / výstupních proudů.

Nyní se podívejme, jak napsat program Java pro implementaci připojení soketu na straně serveru.

// Program Java pro server Serverside import java.net. * Import java.io. * veřejná třída ServerSide {// inicializovat socket a vstupní stream private Socket socket = null private ServerSocket server = null private DataInputStream in = null // konstruktor s port public Server (int port) {// spustí server a čeká na připojení zkuste {server = new ServerSocket (port) System.out.println ('Server started') System.out.println ('Waiting for a client .. . ') socket = server.accept () System.out.println (' Klient akceptován ') // přijímá vstup z klientské zásuvky v = new DataInputStream (nový BufferedInputStream (socket.getInputStream ())) Řetězcový řádek =' '/ / čte zprávu od klienta, dokud není odeslána zpráva 'Over' while (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Closing connection') // zavřít připojení socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Serverový server = nový server (5 000)}}

Po nakonfigurování konce klienta i serveru můžete nejprve spustit program na straně serveru. Poté musíte spustit program na straně klienta a odeslat požadavek. Jakmile je požadavek odeslán z konce klienta, server odpoví zpět. Níže uvedený snímek představuje totéž.

1. Když spustíte skript na straně serveru, spustí se a počká na spuštění klienta.

datový typ data v sql

2. Dále se klient připojí a zadá požadavek ve formě řetězce.

3. Když klient odešle požadavek, server odpoví zpět.

Takto musíte spustit program soketu v Javě. Tyto programy můžete také spustit v okně terminálu nebo na příkazovém řádku. Ale protože Eclipse je velmi pokročilý ve svých funkcích, můžete jednoduše spustit oba programy na konzole.

Tím se dostáváme na konec článku o Socket Programming in Java. Doufám, že jsem na vaše znalosti vrhl trochu světla Programování soketů.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, abychom se kromě otázek týkajících se tohoto rozhovoru pro javu stali i učebním plánem, který je určen pro studenty a profesionály, kteří chtějí být vývojářem Java.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto článku „Programování soketů v Javě“ a my se vám ozveme co nejdříve.