Sabtu, 09 Maret 2013

Tutorial Socket Programming Java



Program Client Server Sederhana
Source Code Client
package klayen;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Klayen {

    public static void main(String[] args) throws UnknownHostException, IOException {
       
        try
        {
            Socket sock = new Socket("localhost",9999);
            PrintStream pr = new PrintStream(sock.getOutputStream());
           
            System.out.print("Enter something : ");
           
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            
            String temp = ed.readLine();
           
            pr.println(temp);
           
            BufferedReader gt = new BufferedReader(new InputStreamReader(sock.getInputStream()));
           
            String tm = gt.readLine();
            System.out.print(tm);
        }
        catch(Exception ex){}
    }
}

Source Code Server
package pelayan;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Pelayan {


    public static void main(String[] args)
    {
        try
        {
            ServerSocket ser = new ServerSocket(9999) ;
            Socket sock = ser.accept();
           
            BufferedReader ed = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String tmp = ed.readLine();
            System.out.println("I Received : "+tmp);
           
            PrintStream pr = new PrintStream(sock.getOutputStream());
            String str = "Hello!";
            pr.println(str);
        }
        catch (Exception ex)
        {
            System.out.println("zonk kwe");
        }
    }
}

===========================================================

Program Client Server Lanjut

Source Code Client
package socketprogramming;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Client {
   
    private static void baca(InputStream is)
    {
        try
        {
            while(true)
            {
                int c = is.read();
                System.out.print((char)c);
               
                if((char)c == '\n')
                    break;
            }
        }
        catch(Exception ex){}
    }

    public static void main(String[] args)
    {
        try
        {
            Socket s = new Socket("10.151.36.149",23234);
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();
           
            System.out.println("Berhasil...");
            baca(is);
               
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            String pesan = ed.readLine() + "\r\n";
            os.write(pesan.getBytes());
            os.flush();
               
            baca(is);

            os.close();
            is.close();
            s.close();           
        }
        catch (UnknownHostException ex)
        {
            System.out.println("503 Bad Gateway");
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (IOException ex)
        {
            System.out.println("404");
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
 

Source Code Server
package socketprogramming;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Server {
   
    private static void baca(InputStream is){
        try{
            while(true){
                int c = is.read();
                System.out.print((char)c);
               
                if((char)c == '\n')
                    break;
            }
        }
        catch(Exception ex){}
    }
   
    private static String getRespons(InputStream is){
        String y = "";
        try
        {
            while(true)
            {
                int c = is.read();
                y = y + (char)c;
                if((char)c == '\n')
                    break;
            }
            return y;
        }
        catch(Exception ex){return y;}
    }
   
    public static void main(String[] args)
    {
        try
        {
            ServerSocket ss = new ServerSocket(11000);
            Socket xs = ss.accept();
           
            InputStream is = xs.getInputStream();
            OutputStream os = xs.getOutputStream();
           
            String respon = "Masukkan username : \r\n";
            os.write(respon.getBytes());
           
            String xy = getRespons(is);
            System.out.print(xy + "is connected\n");
            if(xy.equalsIgnoreCase("user\r\n") || xy.equalsIgnoreCase("admin\r\n"))
            {
                respon = "Server : Selamat datang " + xy;
                os.write(respon.getBytes());
            }
            else
            {
                respon = "User tidak diketahui....\n";
                os.write(respon.getBytes());
            }
               
            os.close();
            is.close();
            xs.close();
           
        }
        catch (IOException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}


==========================================================

Program Client Server Menghitung

Source Code Client
package socketintellegent;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

public class SocketIntellegentClient {
    public static void main(String[] args)
    {
        try
        {
            Socket ss = new Socket("localhost",9999);
            PrintStream pr = new PrintStream(ss.getOutputStream());
            System.out.print("Masukkan ekspresi : ");
           
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            String temp = ed.readLine();
           
            pr.println(temp);
           
            BufferedReader gt = new BufferedReader(new InputStreamReader(ss.getInputStream()));
            String tm = gt.readLine();
            System.out.println(tm);
        }
        catch(Exception ex){}
    }
}


Source Code Server
package socketintellegent;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;


public class SocketIntellegentServer {
   
    private static int Hitung(String y)
    {
        int angka = 0;
        char t = 'a';
        String x = "";
        for(int i = 0; i < y.length(); i++)
        {
            if(y.charAt(i) != ' ')
            {
                if(y.charAt(i) > 47 && y.charAt(i) < 58)
                    x+=y.charAt(i);
                else
                {
                    t = y.charAt(i);
                    angka = Integer.parseInt(x);
                    x = "";
                }
            }
        }
        if(t == '+')
            angka+=(Integer.parseInt(x));
        else if(t == '-')
            angka-=(Integer.parseInt(x));
        else if(t == '*')
            angka*=(Integer.parseInt(x));
        else if(t == '/')
            angka/=(Integer.parseInt(x));
        else if(t == '%')
            angka%=(Integer.parseInt(x));
       
        return angka;
    }
   
    public static void main(String[] args)
    {
        try
        {
            ServerSocket ss = new ServerSocket(9999);
            Socket sock = ss.accept();
           
            BufferedReader ed = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String tmp = ed.readLine();
            tmp = Integer.toString(Hitung(tmp));
            PrintStream pr = new PrintStream(sock.getOutputStream());
            pr.println(tmp);
        }
        catch (Exception ex)
        {
            System.out.print("zonk\n");
        }       
    }
   
}


==========================================================

Tidak ada komentar:

Posting Komentar