Wednesday, February 19, 2014

Socket Programming in Java

Socket  Programming dapat diterapkan dalam berbagai bahasa pemrograman. kali ini saya akan memberikan tutorial untuk melakukan socket programming client-server secara sederhana menggunakan bahasa Java pada ubuntu anda.

1. pastikan anda memiliki source code GreetingServer.java dan GreetingClient.java
GreetingServer.java
 package edu.lmu.cs.networking;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

/**
 * A TCP server that runs on port 9090.  When a client connects, it
 * sends the client the current date and time, then closes the
 * connection with that client.  Arguably just about the simplest
 * server you can write.
 */
public class DateServer {

    /**
     * Runs the server.
     */
    public static void main(String[] args) throws IOException {
        ServerSocket listener = new ServerSocket(9090);
        try {
            while (true) {
                Socket socket = listener.accept();
                try {
                    PrintWriter out =
                        new PrintWriter(socket.getOutputStream(), true);
                    out.println(new Date().toString());
                } finally {
                    socket.close();
                }
            }
        }
        finally {
            listener.close();
        }
    }
}

GreetingClient.java
// 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();
      }
   }
}

2. pastikan juga anda memiliki compiler java pada laptop anda. jika belum dapat melihat tutorial dari sini
3. buka 2 terminal secara paralel
4. lalu masukkan direktori kedua file java
5. ketik javac GreetingServer.java untuk melakukan compile  di terminal 1. lalu masukan javac GreetingClien.java
ingat: selalu lakukan compile untuk server terlebih dahulu
6. lalu ketikkan java GreetingServer [pilih port secara bebas] pada terminal 1. lalu ketikkan java localhost GreetingServer [port yang telah dipilih di server]
7. jika berhasil akan mucul seperti dibawah ini


sumber: http://www.tutorialspoint.com/java/java_networking.htm

No comments:

Post a Comment