Advertisement
lizabaranovskaya

laba 2 psp

Apr 14th, 2019
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.72 KB | None | 0 0
  1. package LR1.server;
  2.  
  3. import javax.xml.crypto.Data;
  4. import java.io.DataInputStream;
  5. import java.io.DataOutputStream;
  6. import java.io.IOException;
  7. import java.net.ServerSocket;
  8. import java.net.Socket;
  9. import java.util.Map;
  10.  
  11. public class Server implements Runnable {
  12.     private int port;
  13.  
  14.     public Server(int port) {
  15.         this.port = port;
  16.     }
  17.  
  18.     public void handleClient(Socket client) {
  19.         String message = null;
  20.         try {
  21.             DataInputStream input = new DataInputStream(client.getInputStream());
  22.             message = input.readUTF();
  23.             System.out.println("Received client's message: " + message);
  24.         } catch (IOException e) {
  25.             System.out.println("Failed to receive client's message");
  26.             e.printStackTrace();
  27.             return;
  28.         }
  29.  
  30.         String reversed = new StringBuilder(message).reverse().toString();
  31.  
  32.         try {
  33.             DataOutputStream outputStream = new DataOutputStream(client.getOutputStream());
  34.             outputStream.writeUTF(reversed);
  35.  
  36.             System.out.println("Sent response: " + reversed);
  37.             System.out.println("Client disconnected.");
  38.             System.out.println();
  39.         } catch (IOException ex) {
  40.             System.out.println("Couldn't send response: ");
  41.             ex.printStackTrace();
  42.             System.out.println();
  43.         }
  44.     }
  45.  
  46.     @Override
  47.     public void run() {
  48.         ServerSocket server;
  49.         try {
  50.             server = new ServerSocket(this.port);
  51.             System.out.println("Server is running...");
  52.             System.out.println();
  53.         } catch (IOException e) {
  54.             System.out.println("Couldn't start server: ");
  55.             e.printStackTrace();
  56.             return;
  57.         }
  58.  
  59.         while (true) {
  60.             Socket client = null;
  61.             try {
  62.                 client = server.accept();
  63.                 handleClient(client);
  64.                 client.close();
  65.             } catch (IOException e) {
  66.                 System.out.println("Couldn't wait for client's connection: ");
  67.                 e.printStackTrace();
  68.             }
  69.         }
  70.     }
  71. }
  72.  
  73. package LR1.client;
  74.  
  75. import java.io.*;
  76. import java.net.ConnectException;
  77. import java.net.Socket;
  78.  
  79. public class Client {
  80.     private static final int port = 8080;
  81.  
  82.     private static Socket client;
  83.     private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  84.  
  85.     public static void handleMessage(String message) throws IOException {
  86.         DataOutputStream output = new DataOutputStream(client.getOutputStream());
  87.         DataInputStream input = new DataInputStream(client.getInputStream());
  88.  
  89.         output.writeUTF(message);
  90.  
  91.         String result = input.readUTF();
  92.         System.out.println("Server response: " + result);
  93.     }
  94.  
  95.     public static void main(String[] args) throws IOException {
  96.         try {
  97.             client = new Socket("localhost", port);
  98.             System.out.println("Connected");
  99.         } catch (ConnectException ex) {
  100.             System.out.println("Couldn't connect to the server");
  101.             return;
  102.         }
  103.  
  104.         System.out.print("Enter word: ");
  105.         String message = br.readLine();
  106.  
  107.         try {
  108.             handleMessage(message);
  109.         } catch (IOException ex) {
  110.             System.out.println("Couldn't send message to server.");
  111.         }
  112.  
  113.         client.close();
  114.         System.out.println("Connection closed.");
  115.     }
  116. }
  117.  
  118. package LR1.server;
  119.  
  120. public class ServerApp {
  121.     private static final int port = 8080;
  122.  
  123.     public static void main(String[] args) {
  124.         Server server = new Server(port);
  125.         server.run();
  126.     }
  127. }
  128.  
  129. package LR1.client;
  130.  
  131. import javafx.application.Application;
  132. import javafx.event.ActionEvent;
  133. import javafx.event.EventHandler;
  134. import javafx.scene.Scene;
  135. import javafx.scene.control.*;
  136. import javafx.scene.layout.AnchorPane;
  137. import javafx.scene.layout.StackPane;
  138. import javafx.stage.Stage;
  139.  
  140. import java.io.IOException;
  141.  
  142. public class ClientApp extends Application {
  143.  
  144.     private Client client;
  145.  
  146.     public ClientApp() {
  147.         client = new Client();
  148.     }
  149.    
  150.     @Override
  151.     public void start(Stage primaryStage) {
  152.         AnchorPane root = new AnchorPane();
  153.  
  154.         Label ipLabel = new Label("IP");
  155.         ipLabel.setLayoutX(100);
  156.         ipLabel.setLayoutY(10);
  157.  
  158.         Label portLabel = new Label("port");
  159.         portLabel.setLayoutX(250);
  160.         portLabel.setLayoutY(10);
  161.  
  162.         TextField ipField = new TextField("127.0.0.1");
  163.         ipField.setLayoutX(20);
  164.         ipField.setLayoutY(40);
  165.  
  166.         TextField portField = new TextField("8080");
  167.         portField.setPrefWidth(60);
  168.         portField.setLayoutX(240);
  169.         portField.setLayoutY(40);
  170.  
  171.         TextArea requestText = new TextArea();
  172.         requestText.setPrefColumnCount(30);
  173.         requestText.setPrefRowCount(5);
  174.         requestText.setLayoutX(20);
  175.         requestText.setLayoutY(140);
  176.  
  177.         TextArea responseText = new TextArea();
  178.         responseText.setPrefColumnCount(30);
  179.         responseText.setPrefRowCount(5);
  180.         responseText.setLayoutX(20);
  181.         responseText.setLayoutY(340);
  182.         responseText.setEditable(false);
  183.  
  184.         Button sendButton = new Button("Send");
  185.         sendButton.setLayoutX(200);
  186.         sendButton.setLayoutY(260);
  187.         sendButton.setOnAction(actionEvent -> {
  188.             try {
  189.                 client.initConnection("127.0.0.1", 8080);
  190.                 String response = client.handleMessage(requestText.getText());
  191.                 responseText.setText(response);
  192.             } catch (IOException e) {
  193.                 e.printStackTrace();
  194.                 Alert alert = new Alert(Alert.AlertType.ERROR);
  195.                 alert.setContentText(e.getMessage());
  196.             } finally {
  197.                 client.closeConnection();
  198.             }
  199.         });
  200.  
  201.         Label requestLabel = new Label("Request data");
  202.         requestLabel.setLayoutX(180);
  203.         requestLabel.setLayoutY(100);
  204.  
  205.         Label responseLabel = new Label("Response data");
  206.         responseLabel.setLayoutX(180);
  207.         responseLabel.setLayoutY(300);
  208.  
  209.  
  210.  
  211.         root.getChildren().addAll(
  212.                 ipLabel, portLabel,
  213.                 ipField, portField,
  214.                 requestLabel,
  215.                 requestText,
  216.                 sendButton,
  217.                 responseLabel,
  218.                 responseText
  219.         );
  220.  
  221.  
  222.  
  223.         final Scene scene = new Scene(root, 410, 500);
  224.         requestText.requestFocus();
  225.         primaryStage.setTitle("Server client");
  226.         primaryStage.setScene(scene);
  227.         primaryStage.show();
  228.     }
  229.  
  230.     public static void main(final String[] arguments) {
  231.         launch(arguments);
  232.     }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement