Tiedä kaikki Java-ohjelmoinnista



Java Socket -ohjelmointia käytetään eri JRE: ssä toimivien sovellusten väliseen viestintään. Java Socket -ohjelmointi voi olla yhteyspainotteinen tai yhteydetön.

Pistokkeiden ohjelmointi sisään käytetään tiedonsiirtoon eri sovellusten välillä . Se voi olla joko yhteyskeskeinen tai yhteydetön. Kokonaisuudessaan pistorasia on tapa muodostaa yhteys asiakkaan ja palvelimen välille. Tässä artikkelissa kerron kaiken Socket-ohjelmoinnista.

Tässä artikkelissa käsitellään seuraavia aiheita:





Mikä on Socket-ohjelmointi Java-ohjelmassa?

Socket-ohjelmointi on tapa yhdistää kaksi verkon solmua kommunikoimaan keskenään. Yksi pistorasiaan (solmu) kuuntelee tiettyä porttia IP: ssä, kun taas toinen pistorasiaan tavoittaa toisen muodostaakseen yhteyden.

Client Server Communication - Socket Programming in Java - Edureka



Palvelin muodostaa kuuntelijan pistorasiaan asiakas tavoittaa palvelimen. Socket ja palvelin Socket käytetään yhteyspainotteiseen pistorasian ohjelmointiin.

Ymmärretään nyt Socket-ohjelmoinnin peruskäsite eli pistorasia.

Mikä on Java-portti?

TO pistorasiaan sisään on yksi päätepiste kaksisuuntaisesta tiedonsiirtoyhteydestä kahden verkossa käynnissä olevan ohjelman välillä. A pistorasiaan on sidottu porttinumeroon, jotta TCP-kerros voi tunnistaa sovelluksen, jolle tiedot on tarkoitus lähettää.



Päätepiste on IP-osoitteen ja portin numeron yhdistelmä. Java-alustan paketti tarjoaa luokan,Pistokejoka toteuttaa kaksisuuntaisen yhteyden toisen puolen Java-ohjelmasi ja toisen verkon ohjelman välillä. Luokka istuu alustasta riippuvan toteutuksen päällä piilottaen minkä tahansa järjestelmän yksityiskohdat Java-ohjelmastasi. Käyttämällä luokkaa sen sijaan, että luottaisit alkuperäiseen koodiin, sinun osaa kommunikoida verkon kautta alustasta riippumattomalla tavalla.

Nyt kun tiedät, mikä on Socket Javaissa, siirrytään eteenpäin ja ymmärretään, miten asiakas kommunikoi palvelimen kanssa ja miten palvelin reagoi.

Asiakaspuolen ohjelmointi

Asiakaspuolen ohjelmoinnin tapauksessa asiakas odottaa ensin palvelimen käynnistymistä. Kun palvelin on käynnissä, se lähettää pyynnöt palvelimelle. Sen jälkeen asiakas odottaa vastausta palvelimelta. Joten tämä on koko asiakas- ja palvelinviestinnän logiikka. Ymmärretään nyt asiakas- ja palvelinpuolen ohjelmointi yksityiskohtaisesti.

Asiakkaan pyynnön aloittamiseksi sinun on noudatettava alla mainittuja vaiheita:

1. Muodosta yhteys

Ensimmäinen vaihe on muodostaa pistorasiayhteys. Pistokeliitäntä tarkoittaa, että kahdella koneella on tietoa toistensa verkon sijainnista (IP-osoite) ja TCP-portista.

java-ohjelma palindromin tarkistamiseksi

Voit luoda Socketin alla olevan lauseen avulla:

Pistorasiapistoke = uusi pistorasia (“127.0.0.1”, 5000)

  • Tässä ensimmäinen argumentti edustaa Palvelimen IP-osoite .

  • Toinen argumentti edustaa TCP-portti . (Se on numero, joka kuvaa palvelimen suoritettavan sovelluksen.)

2. Viestintä

Yhteyden muodostamiseksi pistorasiakytkennän kautta käytetään virtoja tietojen syöttämiseen ja tulostamiseen. Kun yhteys on muodostettu ja pyynnöt lähetetty, yhteys on lopetettava.

3. Sulje yhteys

Pistokeliitäntä suljetaan nimenomaisesti, kun viesti palvelimelle on lähetetty.

Katsotaan nyt, miten Java-ohjelma kirjoitetaan, jotta socket-yhteys voidaan toteuttaa asiakkaan puolella.

// JavaScripti ClientSidelle tuo java.net. * Tuo java.io. * julkinen luokka ClientProgram {// alusta socket- ja input-lähtövirrat private Socket socket = null private DataInputStream input = null private dataOutputStream out = null // constructor laittaa IP-osoite ja portti julkinen asiakas (merkkijono-osoite, int-portti) {// muodosta yhteys kokeile {socket = uusi Socket (osoite, portti) System.out.println ('Yhdistetty') // ottaa tulon päätelaitteen tulosta = uusi DataInputStream (System.in) // lähettää lähdön pistorasiaan out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // merkkijono viestin lukemiseksi syötteestä String line = '' // jatka lukemista, kunnes syötetään 'Over', kun taas (! line.equals ('Over')) {yritä {line = input.readLine ( ) out.writeUTF (rivi)} catch (IOException i) {System.out.println (i)}}} // sulje yhteys kokeile {input.close () out.close () socket.close ()} catch (IOException i ) {System.out.println (i)}} public staattinen void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Toteutetaan nyt palvelinpuolen ohjelmointi ja saavutetaan sitten tulos.

Palvelinpuolen ohjelmointi

Pohjimmiltaan palvelin instantioi objektinsa ja odottaa asiakkaan pyyntöä. Kun asiakas lähettää pyynnön, palvelin kommunikoi vastauksen kanssa.

Palvelinpuolen sovelluksen koodaamiseen tarvitaan kaksi pistorasiaa, jotka ovat seuraavat:

  • TO ServerSocket joka odottaa asiakaspyyntöjä (kun asiakas tekee uuden Socketin ())

  • Tavallinen vanha pistorasiaan yhteydenpitoon asiakkaan kanssa.

    mitä .trim tekee java

Tämän jälkeen sinun on kommunikoitava asiakkaan kanssa vastauksella.

Viestintä

getOutputStream () menetelmää käytetään lähdön lähettämiseen pistorasian kautta.

Sulje yhteys

On tärkeää sulkea yhteys sulkemalla liitäntä sekä tulo- / lähtövirrat, kun kaikki on tehty.

Katsotaan nyt, miten Java-ohjelma kirjoitetaan pistokeliitännän toteuttamiseksi palvelimen puolella.

// Java-ohjelma palvelinpuolelle tuo java.net. * Tuo java.io. * julkinen luokka ServerSide {// alusta socket ja input stream yksityinen socket socket = nolla yksityinen ServerSocket-palvelin = nolla yksityinen DataInputStream sisään = null // konstruktori portti julkinen palvelin (int-portti) {// käynnistää palvelimen ja odottaa yhteyttä, yritä {server = new ServerSocket (port) System.out.println ('Palvelin aloitettu') System.out.println ('Odotetaan asiakasta .. . ') socket = server.accept () System.out.println (' Asiakas on hyväksytty ') // ottaa syötteen asiakassovelluksesta = new DataInputStream (uusi BufferedInputStream (socket.getInputStream ())) Merkkijono =' '/ / lukee viestin asiakkaalta, kunnes 'Yli' lähetetään, kun (! line.equals ('Over')) {yritä {line = in.readUTF () System.out.println (rivi)} kiinni (IOException i) {System. out.println (i)}} System.out.println ('Yhteyden sulkeminen') // sulje yhteyspistoke.close () in.close ()} catch (IOException i) {System.out.println (i)}} public staattinen void main (String args []) { Palvelinpalvelin = uusi palvelin (5000)}}

Kun olet määrittänyt sekä asiakas- että palvelinpään, voit suorittaa palvelinpuolen ohjelman ensin. Sen jälkeen sinun on suoritettava asiakaspuoliohjelma ja lähetettävä pyyntö. Heti kun pyyntö lähetetään asiakkaan päästä, palvelin vastaa takaisin. Alla oleva tilannekuva edustaa samaa.

1. Kun suoritat palvelinpuolen komentosarjan, se käynnistyy ja odottaa asiakkaan aloittamista.

2. Seuraavaksi asiakas muodostaa yhteyden ja syöttää pyynnön merkkijonona.

3. Kun asiakas lähettää pyynnön, palvelin vastaa takaisin.

Näin sinun on suoritettava Java-socket-ohjelma. Voit myös suorittaa nämä ohjelmat pääteikkunassa tai komentokehotteessa. Mutta koska Eclipse on ominaisuuksiensa kanssa pitkälle edistynyt, voit yksinkertaisesti suorittaa molemmat ohjelmat konsolilla.

Tämä tuo meidät artikkelin loppuun, joka koskee Java-ohjelmointia Socket-ohjelmoinnissa. Toivon, että olen tuonut valoa tietämykseesi Socket-ohjelmointi.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Olemme täällä auttaaksemme sinua matkasi jokaisessa vaiheessa, jotta tulemme tämän java-haastattelukysymyksen lisäksi, keksimme opetussuunnitelman, joka on tarkoitettu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä.

Onko sinulla kysymys meille? Mainitse se tämän 'Socket Programming in Java' -artikkelin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.