Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- public class Server {
- public static void main(String[] args) throws IOException {
- byte[] buf; //массив байт для записи сообщения в байтах
- DatagramSocket socket = new DatagramSocket(9912, InetAddress.getByName("localhost")); //создаём серверв с заданным портом и именем
- System.out.println("Сервер включён");
- while (true) {
- System.out.println("========================");
- buf = new byte[256];
- DatagramPacket pack = new DatagramPacket(buf, buf.length); //создаём дейтаграмму в которую будем получать инфу
- socket.receive(pack); //получаем инфу от клиента
- int port = pack.getPort(); //запоминаем порт от кого получили
- InetAddress clientAdr = pack.getAddress(); //и адрес(имя)
- String str = new String(pack.getData(), 0, pack.getLength()); //преобразуем полученную инфу в строку
- System.out.println("Получили: " + str);
- String result;
- if (str.length() > 7) {
- String temp = ("{" + str + "}");
- result = "Результат выполнения: " + temp; //формируем строку для отправки
- } else result = "Длина строки меньше 7";
- buf = result.getBytes(); //получаем значение строки в байтах
- pack = new DatagramPacket(buf, buf.length, clientAdr, port); //формируем дейтаграмму, указывая порт и адрес получателя
- socket.send(pack);//отправляем дейтаграмму
- System.out.println("Отправлено: " + result );
- }
- }
- }
- package client;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.*;
- public class Client {
- public static void main(String[] args) throws IOException {
- DatagramSocket socket = new DatagramSocket(); //создаем сокет для возможности получения и отправки
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //поток для ввода с клавиатуры
- System.out.println("Введите строку.");
- String word = br.readLine(); //читаем с клавиатуры
- br.close();//закрываем поток для чтения с клавиатуры, тк она нам больше не нужен
- byte[] buf = word.getBytes(); //получаем строку в байтах
- DatagramPacket packet = new DatagramPacket(buf,buf.length,InetAddress.getByName("localhost"),9912); // формируем дейтаграмму
- socket.send(packet);//отправляем
- System.out.println("Строка была отправлена.");
- System.out.println();
- buf = new byte[512];
- packet = new DatagramPacket(buf,buf.length); //формируем новую дейтаграмму для получения от сервера
- socket.receive(packet); //получаем от сервера
- String recived = new String(packet.getData(),0,packet.getLength()); // формируем строку
- System.out.println("Получено: " + recived);
- socket.close();//закрыли поток сокета
- }
- }
Add Comment
Please, Sign In to add comment