Jumat, 03 Desember 2010

Socket programming using java

DateServer.java

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

public class DateServer extends Thread {

   private ServerSocket dateServer;
 

   public static void main(String argv[]) throws Exception {
     new DateServer();
   }

   public DateServer() throws Exception {
     dateServer = new ServerSocket(3000);
     System.out.println("Server listening on port 3000.");
     this.start();
   } 

   public void run() {
     while(true) {
       try {
        System.out.println("Waiting for connections.");
        Socket client = dateServer.accept();
        System.out.println("Accepted a connection from: "+
client.getInetAddress());
        Connect c = new Connect(client);
       } catch(Exception e) {}
     }
   }
}

class Connect extends Thread {
   private Socket client = null;
   private ObjectInputStream ois = null;
   private ObjectOutputStream oos = null;
    
   public Connect() {}

   public Connect(Socket clientSocket) {
     client = clientSocket;
     try {
      ois = new ObjectInputStream(client.getInputStream());
      oos = new ObjectOutputStream(client.getOutputStream());
     } catch(Exception e1) {
         try {
            client.close();
         }catch(Exception e) {
           System.out.println(e.getMessage());
         }
         return;
     }
     this.start();
   }

  
   public void run() {
      try {
         oos.writeObject(new Date());
         oos.flush();
         // close streams and connections
         ois.close();
         oos.close();
         client.close(); 
      } catch(Exception e) {}       
   }
}
DateClient.java



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

public class DateClient {
   public static void main(String argv[]) {
      ObjectOutputStream oos = null;
      ObjectInputStream ois = null;
      Socket socket = null;
      Date date = null;
      try {
        // open a socket connection
        socket = new Socket("yourMachineNameORipAddress", 3000);
        // open I/O streams for objects
        oos = new ObjectOutputStream(socket.getOutputStream());
        ois = new ObjectInputStream(socket.getInputStream());
        // read an object from the server
        date = (Date) ois.readObject();
        System.out.print("The date is: " + date);
        oos.close();
        ois.close();
      } catch(Exception e) {
        System.out.println(e.getMessage());
      }
   }
}
Lakukan Langkah ini pada command prompt
Cara menjalankan program di atas adalah
>javac DataServer.java
>java  DataServer
Setelah itu Pada waktu bersamaan lakukan
>javac DataClient.java
>java  DataClient

0 komentar:

Posting Komentar