Sunday 11 October 2015

networking java

Pemrograman jaringan merujuk pada program penulisan yang mengeksekusi di beberapa perangkat (komputer), di mana perangkat semua terhubung satu sama lain menggunakan jaringan.

Paket java.net dari API J2SE berisi kumpulan kelas dan interface yang memberikan tingkat rendah rincian komunikasi, memungkinkan Anda untuk menulis program yang fokus pada pemecahan masalah yang dihadapi.

Paket java.net menyediakan dukungan untuk dua protokol jaringan yang umum:

TCP: TCP singkatan Transmission Control Protocol, yang memungkinkan untuk komunikasi yang handal antara dua aplikasi. TCP biasanya digunakan melalui Internet Protocol, yang disebut sebagai TCP / IP.

UDP: UDP singkatan User Datagram Protocol, protokol connection-kurang yang memungkinkan untuk paket data yang akan ditransmisikan antara aplikasi.

Tutorial ini memberikan pemahaman yang baik pada dua mata pelajaran berikut:

Socket Programming: ini paling banyak konsep yang digunakan dalam Jaringan dan telah dijelaskan dalam sangat rinci.

Pengolahan URL: ini akan dibahas secara terpisah. Klik di sini untuk belajar tentang URL Pengolahan dalam bahasa Jawa.

Socket Programming:
Soket menyediakan mekanisme komunikasi antara dua komputer menggunakan TCP. Sebuah program klien menciptakan soket pada akhirnya komunikasi dan mencoba untuk menyambung socket yang ke server.

Ketika sambungan dibuat, server membuat objek soket pada akhirnya komunikasi. Klien dan server sekarang dapat berkomunikasi dengan menulis dan membaca dari soket.

Kelas java.net.Socket mewakili socket, dan kelas java.net.ServerSocket menyediakan mekanisme untuk program server untuk mendengarkan klien dan membangun hubungan dengan mereka.

Langkah-langkah berikut terjadi ketika membangun koneksi TCP antara dua komputer menggunakan soket:

Server instantiates objek ServerSocket, yang menunjukkan mana komunikasi nomor port adalah terjadi pada.

Server memanggil menerima () metode kelas ServerSocket. Metode ini menunggu sampai klien terhubung ke server pada port yang diberikan.

Setelah server menunggu, klien instantiates objek Socket, menentukan nama server dan nomor port untuk menghubungkan ke.

Konstruktor dari kelas Socket mencoba untuk menghubungkan klien ke server dan nomor port tertentu. Jika komunikasi didirikan, klien sekarang memiliki objek Socket mampu berkomunikasi dengan server.

Di sisi server, yang menerima () method mengembalikan referensi ke soket baru pada server yang terhubung ke soket klien.

Setelah koneksi ditetapkan, komunikasi dapat terjadi dengan menggunakan I / O stream. Setiap soket memiliki kedua OutputStream dan InputStream. OutputStream klien terhubung ke server InputStream, dan InputStream klien terhubung ke OutputStream server.

TCP adalah protokol komunikasi twoway, sehingga data dapat dikirim di kedua sungai pada waktu yang sama. Ada berikut kelas berguna menyediakan set lengkap metode untuk melaksanakan soket.

ServerSocket Kelas Metode:
Kelas java.net.ServerSocket digunakan oleh aplikasi server untuk mendapatkan port dan mendengarkan permintaan klien

Kelas ServerSocket memiliki empat konstruktor:

SN Metode dengan Deskripsi
1 ServerSocket public (int port) throws IOException
Upaya untuk membuat server socket terikat pada port tertentu. Pengecualian terjadi jika port sudah terikat oleh aplikasi lain.

2 ServerSocket public (port int, int backlog) throws IOException
Serupa dengan konstruktor sebelumnya, parameter backlog menentukan berapa banyak klien yang masuk untuk menyimpan dalam antrian menunggu.

3 ServerSocket public (port int, int backlog, alamat InetAddress) throws IOException
Serupa dengan konstruktor sebelumnya, parameter InetAddress menentukan alamat IP lokal untuk mengikat. The InetAddress digunakan untuk server yang mungkin memiliki beberapa alamat IP, yang memungkinkan server untuk menentukan dari IP alamat untuk menerima permintaan klien pada

4 ServerSocket publik () throws IOException
Menciptakan server soket terikat. Bila menggunakan konstruktor ini, menggunakan metode mengikat () ketika Anda siap untuk mengikat server socket

Jika konstruktor ServerSocket tidak membuang pengecualian, itu berarti bahwa aplikasi Anda telah berhasil terikat pada port tertentu dan siap permintaan klien.

Berikut adalah beberapa metode umum kelas ServerSocket:

SN Metode dengan Deskripsi
1 int getLocalPort publik ()
Mengembalikan port yang soket server mendengarkan pada. Metode ini berguna jika Anda lulus di 0 sebagai nomor port dalam konstruktor dan membiarkan server menemukan port untuk Anda.

2 Socket publik menerima () throws IOException
Menunggu klien yang masuk. Metode ini blok sampai baik klien terhubung ke server pada port tertentu atau soket kali keluar, dengan asumsi bahwa nilai time-out telah ditetapkan dengan menggunakan metode setSoTimeout (). Jika tidak, metode ini blok tanpa batas

3 public void setSoTimeout (int timeout)
Menetapkan nilai waktu habis untuk berapa lama server soket menunggu klien selama menerima ().

4 public void mengikat (SocketAddress tuan rumah, int backlog)
Mengikat socket ke server tertentu dan pelabuhan di objek SocketAddress. Gunakan metode ini jika Anda instantiated ServerSocket dengan menggunakan konstruktor tanpa argumen.

Ketika ServerSocket yang memanggil menerima (), metode ini tidak kembali sampai klien menghubungkan. Setelah klien tidak terhubung, ServerSocket menciptakan Socket baru pada port yang tidak ditentukan dan mengembalikan referensi ke Socket baru ini. Sebuah koneksi TCP sekarang ada antara klien dan server, dan komunikasi dapat dimulai.

Socket Kelas Metode:
Kelas java.net.Socket merupakan socket yang kedua klien dan penggunaan server untuk berkomunikasi satu sama lain. Klien mendapatkan objek Socket oleh instantiating satu, sedangkan server memperoleh objek Socket dari nilai kembali dari metode menerima ().

Kelas Socket memiliki lima konstruktor yang menggunakan klien untuk menghubungkan ke server:

SN Metode dengan Deskripsi
1 Socket publik (String host, port int) throws UnknownHostException, IOException.
Metode ini mencoba untuk terhubung ke server tertentu di pelabuhan tertentu. Jika konstruktor ini tidak membuang pengecualian, koneksi berhasil dan klien terhubung ke server.

2 Socket publik (InetAddress host, port int) throws IOException
Metode ini identik dengan konstruktor sebelumnya, kecuali bahwa tuan rumah dilambangkan dengan obyek InetAddress.

3 Socket publik (String host, port int, InetAddress localaddress, int LocalPort) throws IOException.
Menghubungkan ke host tertentu dan port, menciptakan socket pada host lokal di alamat yang ditentukan dan port.

4 Socket publik (InetAddress host, port int, InetAddress localaddress, int LocalPort) throws IOException.
Metode ini identik dengan konstruktor sebelumnya, kecuali bahwa tuan rumah dilambangkan dengan sebuah objek InetAddress bukan String

5 Socket publik ()
Menciptakan socket tidak berhubungan. Menggunakan metode connect () untuk menghubungkan soket ini ke server.

Ketika kembali Socket konstruktor, tidak hanya instantiate objek Socket tetapi sebenarnya mencoba untuk terhubung ke server tertentu dan port.

Beberapa metode yang menarik di kelas Socket tercantum di sini. Perhatikan bahwa kedua klien dan server memiliki objek Socket, sehingga metode ini dapat dipanggil oleh kedua klien dan server.

SN Metode dengan Deskripsi
1 public void terhubung (SocketAddress tuan rumah, int timeout) throws IOException
Metode ini menghubungkan soket untuk host tertentu. Metode ini diperlukan hanya bila Anda instantiated Socket menggunakan konstruktor tanpa argumen.

2 publik InetAddress getInetAddress ()
Metode ini mengembalikan alamat dari komputer lain yang socket ini terhubung ke.

3 int getPort publik ()
Mengembalikan port soket terikat untuk pada mesin remote.

4 int getLocalPort publik ()
Mengembalikan port soket terikat untuk pada mesin lokal.

5 publik SocketAddress getRemoteSocketAddress ()
Mengembalikan alamat dari soket terpencil.

6 publik InputStream getInputStream () throws IOException
Mengembalikan input stream dari soket. Input stream terhubung ke output stream dari socket terpencil.

7 publik OutputStream getOutputStream () throws IOException
Mengembalikan output stream soket. Output stream terhubung ke input stream dari socket terpencil

8 public void close () throws IOException
Menutup soket, yang membuat objek Socket ini tidak lagi mampu menghubungkan lagi ke server apapun

InetAddress Kelas Metode:
Kelas ini merupakan Internet Protocol (IP) address. Berikut mengikuti metode berguna yang akan Anda butuhkan saat melakukan pemrograman socket:

SN Metode dengan Deskripsi
1 statis InetAddress getByAddress (byte [] addr)
Mengembalikan sebuah objek InetAddress diberi alamat IP baku.

2 statis InetAddress getByAddress (String tuan rumah, byte [] addr)
Buat InetAddress berdasarkan nama host yang sudah disediakan dan alamat IP.

3 statis InetAddress getByName (String host)
Menentukan alamat IP dari sebuah host, diberi nama host.

4 String getHostAddress ()
Mengembalikan alamat IP tali dalam presentasi tekstual.

5 String gethostname ()
Mendapatkan nama host untuk alamat IP ini.

6 statis InetAddress InetAddress getLocalHost ()
Mengembalikan host lokal.

7 String toString ()
Mengkonversi alamat IP ini untuk String.

Socket Contoh Klien:
Berikut GreetingClient adalah sebuah program klien yang terhubung ke server dengan menggunakan socket dan mengirim salam, dan kemudian menunggu tanggapan.

// File Name GreetingClient.java

import java.net.*;
import java.io.*;

public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("Connecting to " + serverName +
   " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " 
   + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in =
                        new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

Socket Server Contoh: Mengikuti program GreetingServer adalah contoh dari aplikasi server yang menggunakan kelas Socket untuk mendengarkan klien pada nomor port yang ditentukan oleh argumen baris perintah:

// File Name GreetingServer.java

import java.net.*;
import java.io.*;

public class GreetingServer extends Thread
{
   private ServerSocket serverSocket;
   
   public GreetingServer(int port) throws IOException
   {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run()
   {
      while(true)
      {
         try
         {
            System.out.println("Waiting for client on port " +
            serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("Just connected to "
                  + server.getRemoteSocketAddress());
            DataInputStream in =
                  new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out =
                 new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to "
              + server.getLocalSocketAddress() + "\nGoodbye!");
            server.close();
         }catch(SocketTimeoutException s)
         {
            System.out.println("Socket timed out!");
            break;
         }catch(IOException e)
         {
            e.printStackTrace();
            break;
         }
      }
   }
   public static void main(String [] args)
   {
      int port = Integer.parseInt(args[0]);
      try
      {
         Thread t = new GreetingServer(port);
         t.start();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

Kompilasi klien dan server dan kemudian mulai server sebagai berikut:

$ java GreetingServer 6066
Waiting for client on port 6066...

Periksa program klien sebagai berikut:

$ java GreetingClient localhost 6066
Connecting to localhost on port 6066
Just connected to localhost/127.0.0.1:6066
Server says Thank you for connecting to /127.0.0.1:6066
Goodbye!

1 comment: