Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.43 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4.  
  5. public class Server {
  6.     public static void main(String args[]) {
  7.         Server object = new Server();
  8.         object.RunServer();
  9.     }
  10.  
  11.     /**
  12.      * данный метод реализует создание сокеты сервера и привязывает его к порту
  13.      */
  14.     public void RunServer() {
  15.         try (ServerSocket server = new ServerSocket(12345)) //создание сокеты сервера и привязка его к прорту
  16.         {
  17.             System.out.println("Успешный запуск.");
  18.             System.out.println("Ожидание клиента...");
  19.             System.out.println();
  20.             while (true) {
  21.                 try (Socket socket = server.accept())//ожидание подключения клиента
  22.                 {
  23.                     System.out.println("Клиент подключился.");
  24.                     OutputInput(socket);
  25.                 } catch (IOException ex) {
  26.                     System.out.println("Клиенту не удалось подключиться.");
  27.                 }
  28.             }
  29.         } catch (IOException ex) {
  30.             System.out.println("Не удалось открыть сокету.");
  31.             System.exit(-1);
  32.         }
  33.     }
  34.  
  35.     /**
  36.      * реализует возможность принятия данных от Клиента, их обработки и отправки результата Клиенту
  37.      * @param socket
  38.      */
  39.     private void OutputInput(Socket socket) {
  40.         try {
  41.             //получение входного и выходного потоков сокета для получения и отправки данных клиенту
  42.             InputStream input = socket.getInputStream();
  43.             OutputStream output = socket.getOutputStream();
  44.             //конвертация потоков в другой тип, чтобы легче обрабатывать текстовые сообщения
  45.             DataInputStream dataInput = new DataInputStream(input);
  46.             DataOutputStream dataOutput = new DataOutputStream(output);
  47.             String string;
  48.             while (true) {
  49.                 System.out.println("Ожидание текста...");
  50.                 System.out.println();
  51.                 string = dataInput.readUTF(); //ожидание строки от клиента
  52.                 System.out.println("От клиента: " + string);
  53.                 Variant8 object = new Variant8(string); //создание объекта класса индивидуального задания
  54.                 System.out.println("Отправляется ответ...");
  55.                 //отправка клиенту результата вычислений при создании объекта
  56.                 dataOutput.writeUTF(object.getResult());
  57.                 System.out.println("Ответ отправлен.");
  58.                 System.out.println();
  59.                 dataOutput.flush(); //заканчиваем передачу данных
  60.             }
  61.         } catch (IOException ex) {
  62.             System.out.println("Разрыв соединения с клиентом.");
  63.             System.out.println("Ожидание клиента...");
  64.             System.out.println();
  65.         }
  66.     }
  67. }
  68.  
  69. /////////////////////////////////////////////////////////////////////////////////////////////////
  70. //////////////////////////////////////////////////////////////////////////////////////////////////
  71.  
  72. import java.io.*;
  73. import java.net.Socket;
  74.  
  75. public class Client {
  76.     public static void main(String[] args) {
  77.         Client object = new Client();
  78.         object.ConnectToServer();
  79.     }
  80.  
  81.     /**
  82.      * реализует подключение Клиента к серверу
  83.      */
  84.     public void ConnectToServer() {
  85.         String ip = "127.0.0.1";
  86.         try (Socket socket = new Socket(ip, 12345)) //создаем сокет, используя ip-адрес и порт сервера
  87.         {
  88.             System.out.println("Добро пожаловать!");
  89.             System.out.println("Вы подключились к " + ip);
  90.             System.out.println();
  91.             OutputInput(socket);
  92.         } catch (IOException ex) {
  93.             System.out.println("Не удалось подключиться к " + ip);
  94.             System.exit(-1);
  95.         }
  96.     }
  97.  
  98.     /**
  99.      * реализует возможность отправки данных серверу и их приема от сервера
  100.      * @param socket
  101.      */
  102.     private void OutputInput(Socket socket) {
  103.         try {
  104.             //получение входного и выходного потоков сокета для получения и отправки данных клиентом
  105.             InputStream inputStream = socket.getInputStream();
  106.             OutputStream outputStream = socket.getOutputStream();
  107.             //конвертация потоков в другой тип, чтобы легче обрабатывать текстовые сообщения
  108.             DataInputStream dataInput = new DataInputStream(inputStream);
  109.             DataOutputStream dataOutput = new DataOutputStream(outputStream);
  110.             //создаем поток для чтения данных с клавиатуры
  111.             BufferedReader keyboardInput = new BufferedReader(new InputStreamReader(System.in));
  112.             String line;
  113.             System.out.println("Введите текст: ");
  114.             while (true) {
  115.                 line = keyboardInput.readLine();//ожидание ввода строки
  116.                 dataOutput.writeUTF(line); //отправка введенной строки серверу
  117.                 dataOutput.flush();//заканчиваем передачу данных
  118.                 System.out.println();
  119.                 System.out.println("Ответ от сервера: ");
  120.                 System.out.println(dataInput.readUTF()); //ожидание ответа от сервера
  121.                 System.out.println();
  122.                 System.out.println("Введите текст: ");
  123.             }
  124.         } catch (IOException ex) {
  125.             System.out.println("Соедиенение с сервером потеряно.");
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement