Программирование на Java
Содержание
Сокет - одна из самых фундаментальных технологий программирования компьютерной сети. Это способ подключения двух узлов в сети для связи друг с другом. Программное обеспечение на основе сокетов обычно работает на двух отдельных компьютерах в сети, но сокеты также могут использоваться для локального обмена данными (interprocess) на одном компьютере.
Программирование Java Socket имеет два раздела.
- Программа Socket Java Server
- Программа для сокетов Java Client
Программа Socket Java Server
Программа Socket Socket представляет собой приложение на базе Java Console. Эта программа выступает в роли сервера и слушает запрос клиентов из порта № 8888.
ServerSocket server=new ServerSocket(8888); Socket serverClient=server.accept();
Пример сокета сервера
import Java.net.*; import Java.io.*; public class TCPServer { public static void main(String[] args) throws Exception { try{ ServerSocket server=new ServerSocket(8888); Socket serverClient=server.accept(); DataInputStream inStream=new DataInputStream(serverClient.getInputStream()); DataOutputStream outStream=new DataOutputStream(serverClient.getOutputStream()); BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); String clientMessage="", serverMessage=""; while(!clientMessage.equals("bye")){ clientMessage=inStream.readUTF(); System.out.println("From Client: "+clientMessage); serverMessage=reader.readLine(); outStream.writeUTF(serverMessage); outStream.flush(); } inStream.close(); outStream.close(); serverClient.close(); server.close(); }catch(Exception e){ System.out.println(e); } } }
Программа Java Socket Socket
Клиент подключен к порту 8888 программы Socket Socket Java и IP-адрес (имя компьютера) серверной машины. Здесь мы приводим 127.0.0.1, потому что Сервер и Клиент работают на одном компьютере. Если клиентская программа работает на другом компьютере, вы можете указать IP-адрес этой машины.
Socket socket=new Socket("127.0.0.1",8888);
Когда программа Java Client запускается, она будет подключаться к программе Socket Java Server и ждать ввода с клиентской стороны. Когда вы вводите сообщение, оно будет отправлено на сервер, а затем вы также увидите ответные сообщения с сервера.
Пример клиента Socket
import Java.io.*; public class TCPClient { public static void main(String[] args) throws Exception { try{ Socket socket=new Socket("127.0.0.1",8888); DataInputStream inStream=new DataInputStream(socket.getInputStream()); DataOutputStream outStream=new DataOutputStream(socket.getOutputStream()); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String clientMessage="",serverMessage=""; while(!clientMessage.equals("bye")){ clientMessage=br.readLine(); outStream.writeUTF(clientMessage); outStream.flush(); serverMessage=inStream.readUTF(); System.out.println("From Server: "+serverMessage); } outStream.close(); outStream.close(); socket.close(); }catch(Exception e){ System.out.println(e); } } }
Как запустить эту программу?
Следующим шагом является запуск программы Java Client Socket на том же компьютере или других компьютерах в той же сети. Когда вы запускаете клиентскую программу, она установит соединение с сервером и ожидает ввода с клиентской стороны. Когда вы вводите сообщение и нажимаете кнопку ENTER, вы можете увидеть одно и то же сообщение на стороне сервера. После получения сообщения с клиентской стороны вы можете отправить сообщение клиенту со стороны сервера. Когда клиент отправляет «bye» со стороны клиента, сервер закрывает соединение с клиентом.