Lecture 8 - Distributed Programming - Code Samples

Objects Over socket example

Code for the SortServer (SortServer.java)

import java.io.*;
import java.net.*;
import java.util.Vector;
import java.util.Collections;
 
public class SortServer {
    public static void main(String args[]) throws Exception {
        ServerSocket ss = new ServerSocket(7177);
        //client socket
        Socket socket;
        while(true) {
            socket = ss.accept();
 
            //create an input stream to read an incoming object
            ObjectInputStream in = new ObjectInputStream(
                                            socket.getInputStream());
 
            //read the object
            Object inObject = in.readObject();
            //Cast the inObject to a vector
            Vector inVector = (Vector)inObject;
 
            //sort the vector
            Collections.sort(inVector); //vector is now sorted
 
            //send the sorted inVector object to the client
            ObjectOutputStream out = new ObjectOutputStream(
                                            socket.getOutputStream());
            out.writeObject(inVector);
            //close client socket
            socket.close();
        }
    }
}

Code for the sort client (SortClient.java)

import java.net.*;
import java.io.*;
import java.util.Vector;
public class SortClient {
    public static void main(String args[]) throws Exception {
        //create a vector object with many elements as numbers and send
        //it to the sort server
        Vector elements = new Vector();
        elements.addElement(new Integer(23));
        elements.addElement(new Integer(25));
        elements.addElement(new Integer(2));
        elements.addElement(new Integer(-4));
 
        //connect to the server
        Socket socket = new Socket("localhost", 7177);
 
        //get an output stream to write the object to the server
        ObjectOutputStream out = new ObjectOutputStream(
                                            socket.getOutputStream());
        //send the object to the server
        out.writeObject(elements);
 
        //Create an input stream to read response from the server
        ObjectInputStream in = new ObjectInputStream(
                                            socket.getInputStream());
        //response comes as an Object
        Object o = in.readObject();
        //Cast the raw object to a vector
        Vector sorted = (Vector) o;
 
        //Display the sorted vector
        System.out.println(sorted);
        //close socket
        socket.close();
    }
} //end SortClient.java