Advertisement
JovanPapi

[OS - lab1] Задача 5

Mar 21st, 2019
826
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. Потребно е да се симулира TCP/IP конекција и комуникација меѓу клиент-сервер.
  2.  
  3. За таа цел, потребно е да креирате две апликации, TCPServer, која ке се извршува на порта 9876 и ќе игра улога на сервер, и TCP Client која ќе се поврзе со серверот и ке му праќа пораки.
  4.  
  5. Пораките што треба да ги прати TCPClient се следни, и се праќаат во ист редослед како што е дадено:
  6.  
  7. 1.25 (Double) 123584124 (Long) true (boolean) "UTF String" (String)
  8.  
  9. TCPServer ја очекува истата секвенца на пораки, во ист редослед, и како што ги добива пораките, ги печати на екран.
  10.  
  11. _Напомена_: Користете соодветни стримови за пишување/читање на примитивни типови*
  12.  
  13. import java.io.DataInputStream;
  14. import java.io.DataOutputStream;
  15. import java.io.IOException;
  16. import java.io.PrintWriter;
  17. import java.net.InetAddress;
  18. import java.net.ServerSocket;
  19. import java.net.Socket;
  20. import java.util.Scanner;
  21.  
  22. class TCPServer {
  23.     private ServerSocket server;
  24.    
  25.     public TCPServer() {
  26.         try {
  27.             server = new ServerSocket(9876);
  28.            
  29.         }
  30.         catch(IOException e) {
  31.             e.printStackTrace();
  32.         }
  33.     }
  34.    
  35.     public void receiveData() throws IOException {
  36.         Thread client = new Thread(new TCPClient(InetAddress.getByName("localhost"),9876));
  37.        
  38.         client.start();
  39.        
  40.         Socket client2 = server.accept();
  41.        
  42.         try {
  43.             client.join();
  44.         }
  45.         catch(InterruptedException e) {
  46.             e.printStackTrace();
  47.         }
  48.        
  49.         DataInputStream getData = new DataInputStream(client2.getInputStream());
  50.        
  51.         System.out.println(getData.readDouble());
  52.         System.out.println(getData.readLong());
  53.         System.out.println(getData.readBoolean());
  54.         System.out.println(getData.readUTF());
  55.        
  56.         getData.close();
  57.     }
  58.  
  59.     public void close() throws IOException {
  60.         // TODO Auto-generated method stub
  61.         this.server.close();
  62.        
  63.     }
  64. }
  65. class TCPClient implements Runnable {
  66.     private Socket socket;
  67.     private Scanner scanner;
  68.    
  69.     public TCPClient(InetAddress serverAddress, int serverPort) throws IOException {
  70.         this.socket = new Socket(serverAddress,serverPort);
  71.         this.scanner = new Scanner(System.in);
  72.     }
  73.    
  74.     public void start() throws IOException{
  75.         DataOutputStream server = new DataOutputStream(socket.getOutputStream());
  76.        
  77.         server.writeDouble(1.25);
  78.         server.writeLong(123584124);
  79.         server.writeBoolean(true);
  80.         server.writeUTF("UTF String");
  81.        
  82.         server.close();
  83.     }
  84.  
  85.     @Override
  86.     public void run() {
  87.         // TODO Auto-generated method stub
  88.         try {
  89.             start();
  90.         }
  91.         catch(IOException e) {
  92.             e.printStackTrace();
  93.         }
  94.        
  95.     }
  96. }
  97. public class HW01_5 {
  98.  
  99.     public static void main(String[] args) {
  100.         // TODO Auto-generated method stub
  101.         TCPServer server = new TCPServer();
  102.        
  103.         try {
  104.             server.receiveData();
  105.             server.close();
  106.         }
  107.         catch(IOException e) {
  108.             e.printStackTrace();
  109.            
  110.         }
  111.  
  112.     }
  113.  
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement