Tea kõike Java-s sisalduva pistikprogrammi programmeerimise kohta

Java sokli programmeerimist kasutatakse suhtlemiseks erinevate JRE-s töötavate rakenduste vahel. Java sokli programmeerimine võib olla ühendusele orienteeritud või ühenduseta.

Pistikupesa programmeerimine kasutatakse suhtlemiseks rakenduste vahel, mis töötavad erinevatel . See võib olla kas ühendusele orienteeritud või ühenduseta. Üldiselt on pistikupesa viis kliendi ja serveri vahel ühenduse loomiseks. Selles artiklis räägin teile kõigest pistikprogrammi programmeerimisest.

Selles artiklis käsitletakse järgmisi teemasid:





Mis on Java-socket-programmeerimine?

Socket programmeerimine on viis kahe sõlme ühendamiseks võrgus üksteisega suhtlemiseks. Üks pistikupesa (sõlm) kuulab konkreetset porti IP-s, samas kui teine pistikupesa sirutub ühenduse loomiseks teise poole.

Kliendiserveri suhtlus - soklite programmeerimine Java-s - Edureka



Server moodustab kuulaja pesa ajal klient pöördub serveri poole. Pistikupesa ja serveri pesa kasutatakse ühendusele orienteeritud pistikupesade programmeerimiseks.

Nüüd mõistame sokli programmeerimise põhikontseptsiooni, st pistikupesa.

Mis on Java-s pesa?

TO pistikupesa aastal on kahe võrgus töötava programmi vahelise kahepoolse sideühenduse üks lõpp-punkt. A pistikupesa on seotud pordinumbriga, et TCP-kiht saaks tuvastada rakenduse, millele andmed on mõeldud saatma.



Lõpp-punkt on IP-aadressi ja pordi numbri kombinatsioon. Java platvormi pakett annab klassi,Pistikupesasee rakendab teie Java programmi ja võrgus asuva teise programmi vahelist kahepoolset ühendust. Klass asub platvormist sõltuva rakenduse peal, varjates teie Java-programmi mis tahes konkreetse süsteemi üksikasju. Kasutades klassi, selle asemel et tugineda omasele koodile, on teie saab võrgu kaudu suhelda platvormist sõltumatult.

Nüüd, kui teate, mis on Java Socket, liigume edasi ja mõistame, kuidas klient serveriga suhtleb ja kuidas server tagasi reageerib.

Kliendipoolne programmeerimine

Kliendipoolse programmeerimise korral ootab klient kõigepealt serveri käivitamist. Kui server on töökorras, saadab ta päringud serverile. Pärast seda ootab klient serverilt vastust. Niisiis, see on kogu kliendi ja serveri suhtluse loogika. Mõelgem nüüd üksikasjalikult kliendi- ja serveripoolset programmeerimist.

Klienditaotluse algatamiseks peate järgima allpool nimetatud samme:

1. Looge ühendus

Esimene samm on pistikupesa ühenduse loomine. Pistikühendus tähendab, et kahel masinal on teavet üksteise võrgu asukoha (IP-aadressi) ja TCP-pordi kohta.

Pistikupesa saate luua alltoodud avalduse abil:

Pistikupesa = uus pesa (“127.0.0.1”, 5000)

  • Esimene argument tähistab siin Serveri IP-aadress .

  • Teine argument tähistab TCP port . (See on number, mis tähistab, milline rakendus peaks serveris töötama.)

2. Suhtlemine

Pistikühenduse kaudu suhtlemiseks kasutatakse andmete sisestamiseks ja väljastamiseks vooge. Pärast ühenduse loomist ja päringute saatmist peate ühenduse sulgema.

3. Ühenduse sulgemine

Pistikupesa ühendus suletakse selgesõnaliselt, kui sõnum serverile on saadetud.

Vaatame nüüd, kuidas kirjutada Java-programm socket-ühenduse loomiseks kliendi poolel.

// JavaScripti jaoks ClientSide'i importimiseks java.net. * Import java.io. * avalik klass ClientProgram {// sokli ja sisendväljundi voogude lähtestamine privaatse sokli pesa = null privaatne DataInputStream sisend = null privaatne DataOutputStream välja = null // konstruktor IP-aadressi ja pordi avaliku kliendi sisestamine (stringi aadress, int-port) {// ühenduse loomiseks proovige {socket = uus pesa (aadress, port) System.out.println ('ühendatud') // võtab sisendi terminali sisendist = uus DataInputStream (System.in) // saadab väljund pistikupessa välja = uus DataOutputStream (socket.getOutputStream ())} saak (UnknownHostException u) {System.out.println (u)} saak (IOException i) {System.out .println (i)} // string sisendi sõnumi lugemiseks String line = '' // jätkake lugemist, kuni sisestatakse 'Over', samal ajal kui (! line.equals ('Over')) {proovige {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // sulgege ühendus proovige {input.close () out.close () socket.close ()} catch (IOException i ) {System.out.println (i)}} avalik staatiline void main (String args []) {Kliendi klient = uus klient ('127.0.0.1', 5000)}}

Rakendame nüüd serveripoolse programmeerimise ja jõuame siis väljundini.

Serveripoolne programmeerimine

Põhimõtteliselt kiirendab server oma objekti ja ootab kliendi päringut. Kui klient päringu saadab, suhtleb server vastusega tagasi.

Serveripoolse rakenduse kodeerimiseks vajate kahte pesa ja need on järgmised:

  • TO ServerSocket mis ootab kliendi päringuid (kui klient teeb uue Socket'i ())

  • Tavaline vana pistikupesa kliendiga suhtlemiseks.

Pärast seda peate vastusega kliendiga suhtlema.

def __init__

Suhtlus

getOutputStream () meetodit kasutatakse väljundi saatmiseks pistikupesa kaudu.

Sulgege ühendus

Kui kõik on tehtud, on oluline ühendus sulgeda, sulgedes pesa, samuti sisend- / väljundvood.

Vaatame nüüd, kuidas kirjutada Java-programm socket-ühenduse loomiseks serveri poolel.

// Java-programm serveri jaoks impordib java.net. * Import java.io. * public class ServerSide {// lähtestab sokli ja sisevoo privaatse sokli sokli = null privaatse ServerSocket'i serveri = null privaatse DataInputStream sisse = null // konstruktori koos port public Server (int port) {// käivitab serveri ja ootab ühendust, proovige {server = new ServerSocket (port) System.out.println ('Server algas') System.out.println ('Ootan klienti .. . ') socket = server.accept () System.out.println (' klient on aktsepteeritud ') // võtab kliendi soklist sisendi = new DataInputStream (uus BufferedInputStream (socket.getInputStream ())) stringirida = '' / / loeb kliendilt sõnumit seni, kuni 'Over' saadetakse, kuni (! line.equals ('Over')) {proovige {line = in.readUTF () System.out.println (line)} püüda (IOException i) {System. out.println (i)}} System.out.println ('Ühenduse sulgemine') // sulgege ühenduse pesa.close () in.close ()} catch (IOException i) {System.out.println (i)}} public staatiline void main (String args []) { Serveriserver = uus server (5000)}}

Pärast nii kliendi kui ka serveri lõpu konfigureerimist saate kõigepealt käivitada serveripoolse programmi. Pärast seda peate käivitama kliendipoolse programmi ja saatma päringu. Niipea kui päring on kliendi otsast saadetud, vastab server tagasi. Allpool olev pilt näitab sama.

1. Serveripoolse skripti käivitamisel see käivitub ja ootab kliendi alustamist.

2. Järgmisena ühendub klient ja sisestab päringu stringi kujul.

3. Kui klient päringu saadab, vastab server tagasi.

Nii peate Java-s pistikprogrammi käivitama. Neid programme saate käivitada ka terminaliaknas või käsuviibal. Kuid kuna Eclipse on oma funktsioonidega hästi arenenud, saate mõlemad programmid lihtsalt konsoolil käivitada.

Sellega jõuame Java-s asuva sokli programmeerimise artikli lõpuni. Loodan, et olen natuke valgustanud teie teadmisi Pesa programmeerimine.

Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Oleme siin, et aidata teil igal sammul teie teekonnal, et saada lisaks sellele Java-intervjuu küsimustele välja, pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java-arendajad.

Kas teil on meile küsimus? Palun mainige seda selle artikli 'Socket Programming in Java' kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.