Программирование на 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» со стороны клиента, сервер закрывает соединение с клиентом.
