Въведение в 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 програма. Можете да разгледате и другите ни предложени статии -
- Java пакети
- Копиране на конструктор на Java
- Обединяване Сортиране в Java
- Ръководство за най-добрите компилатори на Java
- Пример на Java пакет | Пример за работа и кодиране