Domů » Informatika » Programovací jazyk » Jazyk Java » Síťová komunikace

Síťová komunikace

Komunikace přes TCP/IP

Síťová komunikace založená na socketech se v Javě implementuje velmi jednoduše. Následující příklad demonstruje odeslání jednoho čísla „42“ přes TCP a jeho vypsání na straně serveru.

Server

kód v jazyce Java - Zobrazit

  1. public void runServer() throws IOException {
  2.     ServerSocket serverSocket = null;
  3.     Socket clientSocket = null;
  4.     DataInputStream clientStream = null;
  5.  
  6.     try {
  7.         // vytvořit serverový socket na portu 12345
  8.  
  9.         serverSocket = new ServerSocket(12345);
  10.  
  11.         // čekat, dokud se klient nepřipojí a pak získat jeho socket
  12.  
  13.         clientSocket = serverSocket.accept();
  14.  
  15.         // získat vstupní proud socketu
  16.         // (výstup pro klienta = vstup pro server)
  17.  
  18.         clientStream = new DataInputStream(clientSocket.getInputStream());
  19.  
  20.         // načíst a zobrazit data od klienta
  21.  
  22.         System.out.println("Received number: " + clientStream.readInt());
  23.     } finally {
  24.         // uvolnit prostředky
  25.  
  26.         if (clientStream != null) {
  27.             try {
  28.                 clientStream.close();
  29.             } catch (IOException ex) {
  30.                 // NOP
  31.             }
  32.         }
  33.  
  34.         if (clientSocket != null) {
  35.             try {
  36.                 clientSocket.close();
  37.             } catch (IOException ex) {
  38.                 // NOP
  39.             }
  40.         }
  41.  
  42.         if (serverSocket != null) {
  43.             try {
  44.                 serverSocket.close();
  45.             } catch (IOException ex) {
  46.                 // NOP
  47.             }
  48.         }
  49.     }
  50. }
Klient

kód v jazyce Java - Zobrazit

  1. public void runClient() throws IOException {
  2.     Socket clientSocket = null;
  3.     DataOutputStream serverStream = null;
  4.  
  5.     try {
  6.         // vytvořit socket a spojit ho se serverem "localhost" na portu 12345
  7.  
  8.         clientSocket = new Socket("localhost", 12345);
  9.  
  10.         // získat výstupní proud socketu
  11.         // (výstup pro klienta = vstup pro server)
  12.  
  13.         serverStream = new DataOutputStream(clientSocket.getOutputStream());
  14.  
  15.         // odeslat data
  16.  
  17.         serverStream.writeInt(42);
  18.     } finally {
  19.         // uvolnit prostředky
  20.  
  21.         if (serverStream != null) {
  22.             try {
  23.                 serverStream.close();
  24.             } catch (IOException ex) {
  25.                 // NOP
  26.             }
  27.         }
  28.  
  29.         if (clientSocket != null) {
  30.             try {
  31.                 clientSocket.close();
  32.             } catch (IOException ex) {
  33.                 // NOP
  34.             }
  35.         }
  36.     }
  37. }