Въведение в Socket програмиране в Java

Световната мрежа и интернет промениха начина, по който живеем и общуваме помежду си, както и начина, по който провеждаме наука, инженеринг и търговия. Съвременният живот се води изцяло или се фокусира около Интернет. Бизнесът непрекъснато търси нови начини за производство и комуникация с различни услуги по нов начин, въвеждайки иновации. В тази статия ще обсъдим Socket Programming на Java.

Sockets предоставят интерфейс за програмиране на мрежи на транспортния слой на OSI модела. Мрежовите комуникации, използващи сокети, се срещат повсеместно в интернет. В допълнение към това, сокет програма, написана на Java, може да комуникира с сокет програма, написана на не-Java език като C, C ++, Python и т.н.

Методи за клас сокет

Методите на Socket Class се намират в Java. Сокетът е длъжен да бъде номер на порт, така че TCP разпознава номера на порта, в който трябва да се изпращат данните. Java предоставя набор от класове, един от които е java.net. Това се използва за бързото развитие на мрежовите приложения. Ключовите класове, интерфейси и изключения, които присъстват в пакета java.net, опростяват сложността на създаването на клиентски и сървърни програми са:

Класовете са:

  • Съдържател
  • Пакет дейтаграми
  • Datagram Socket
  • Datagram Socket Imp 1
  • HTTP URL връзка
  • Нетен адрес
  • Гнездо за многоадресна връзка
  • Сървър гнездо
  • гнездо
  • Гнездо Imp 1
  • URL
  • URL връзка
  • URL енкодер
  • URL подавач на потоци

Интерфейсите са:

  • Фабрика за обработка на съдържание
  • Карта на името на файла
  • Socket Impl Factory
  • URL фабрика за обработка на потоци

Изключенията са:

  • Обвързване с изключение
  • Свържете изключение
  • Изключение с неправилно оформен URL адрес
  • Няма път до изключение от домакин
  • Изключение от протокол
  • Socket изключение
  • Неизвестно изключение на хоста
  • Известно изключение от услугата.

TCP / IP гнездо за програмиране

Има два класа, използвани от пакета java.net, които се използват при създаването на програми. Те са:

  • Сървър гнездо
  • гнездо

Сървърна програма комуникира чрез входни и изходни потоци. Ако има заявка за връзка, тогава има нов гнездо, което влиза в игра и тук е установена връзка с него.

Метод 1 - Създаване на програма за сървър сокет

Има различни стъпки за създаване на програма за сървър сокет в Java. Простите стъпки за създаване на програма за сървър сокет са следните:

Стъпка 1 - Socket Server е отворен

Общ сървър Socket = нов сървър сокет (PO)

Тук PO е номерът на порта.

Тук номерът на порта е присвоен на мрежата на сървъра, чрез която той ще комуникира, използвайки входни / изходни потоци.

Стъпка 2 - Има заявка за клиент, за която трябва търпеливо да чакаме

Socket General = сървър. приеме ()

Тук Сървърът. accept () чака клиента и името на сокета е Клиент тук.

Стъпка 3 - I / O потоците се създават така, че да се установи връзка

Поток за въвеждане на данни е = нов поток за въвеждане на данни (клиент. Вземете входен поток ());

Изходен поток на данни os = нов Изходен поток на данни (клиент. Получаване на изходящ поток ());

Входният поток е и на изходния поток os се присвоява своя Get Input Stream () и те се извикват съответно.

Стъпка 4 - Създава се контакт с клиента

Получаване от клиента: String hello = br. Прочетете ред ();

Изпратете го на клиента: br. Напишете байтове („Как сте \ n“);

Следният код комуникира с клиента, който получава и изпраща до клиента заявките.

Стъпка 5 - Накрая, Socket се прави за излизане

Накрая, функцията за затваряне на сокета се използва за затваряне и прекратяване на програмирането на гнездото.

Прост пример за сървър сокет е показан по-долу:

// Проста програма за свързване на сървъра.

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(); )
)

Метод 2 - Създаване на проста програма за сървър на сокети

Сега ще видим Проста клиентска програма в Java. Стъпките за създаване на проста клиентска програма в Java са показани по-долу:

Стъпка 1 - Сокетният обект е направен

Socket клиент = нов Socket (сървър, port_id)

Сървърът и идентификаторът на порт са свързани, тоест сървърът е свързан към идентификатора на порта.

Стъпка 2 - Създават се потоци за вход / изход

е = нов поток за въвеждане на данни (client.getInputStream ());

os = нов изходен поток на данни (client.getOutputStream ());

Входният поток е и Изходният поток ос се използва за комуникация с клиента.

Стъпка 3 - Входните / изходните потоци се правят за разговор с клиента

Данните се четат от сървъра: String hello = br. Readline ();

Изпращане на данни до сървъра: br.writeBytes („Как си \ n“)

Тази стъпка комуникира със сървъра. Входният и изходният поток комуникират и със сървъра.

Стъпка 4 - Затворете гнездото, когато сте готови

Тази функция ще затвори клиента, когато е окончателно извършена.

Пример за обикновена програма за сървър на сокет е показан по-долу

// Проста програма за клиента

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();
)
)

Заключение - Сокетно програмиране в Java

  • Сокетното програмиране е много полезно в Java и във всеки друг език за програмиране, основно на факта, че програма, написана на Java, може да се свърже с програма, написана на C или C ++.
  • С други думи, езикът на сокетната програма няма значение кога трябва да има връзка между двете.
  • В тази статия основно видяхме примера Simple Server и Simple Client, където има връзка между сървърния сокет, а в другата има връзка между сървърния сокет.
  • Използвахме TCP / IP програмиране за същото. Въпреки това, има много техники за програмиране като техники за програмиране на UDP и техники за програмиране на URL. В тази статия не сме виждали примери за такива. Наблегнахме на техниката на програмиране на TCP / IP.

Препоръчителни статии

Това е ръководство за програмиране на сокет в Java. Тук обсъждаме методите на клас сокет с java програма. Можете да разгледате и другите ни предложени статии -

  1. Java пакети
  2. Копиране на конструктор на Java
  3. Обединяване Сортиране в Java
  4. Ръководство за най-добрите компилатори на Java
  5. Пример на Java пакет | Пример за работа и кодиране