Deadlock condition

Simple Socket Example

The server


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

public class Provider
{
    ServerSocket providerSocket;
    Socket connection = null;
    ObjectOutputStream out;
    ObjectInputStream in;
    String message;

    Provider()
    {
    }

    void run()
    {
        try
        {
            //1. creating a server socket
            providerSocket = new ServerSocket(2004, 10);
            //2. Wait for connection
            System.out.println("Waiting for connection");
            connection = providerSocket.accept();
            System.out.println("Connection received from " + connection.getInetAddress().getHostName());
            //3. get Input and Output streams
            out = new ObjectOutputStream(connection.getOutputStream());
            out.flush();
            in = new ObjectInputStream(connection.getInputStream());
            sendMessage("Connection successful");
            //4. The two parts communicate via the input and output streams
            do
            {
                try
                {
                    message = (String) in.readObject();
                    System.out.println("client>" + message);
                    if (message.equals("bye"))
                    {
                        sendMessage("bye");
                    }
                } catch (ClassNotFoundException classnot)
                {
                    System.err.println("Data received in unknown format");
                }
            } while (!message.equals("bye"));
        } catch (IOException ioException)
        {
            ioException.printStackTrace();
        } finally
        {
            //4: Closing connection
            try
            {
                in.close();
                out.close();
                providerSocket.close();
            } catch (IOException ioException)
            {
                ioException.printStackTrace();
            }
        }
    }

    void sendMessage(String msg)
    {
        try
        {
            out.writeObject(msg);
            out.flush();
            System.out.println("server>" + msg);
        } catch (IOException ioException)
        {
            ioException.printStackTrace();
        }
    }

    public static void main(String args[])
    {
        Provider server = new Provider();
        while (true)
        {
            server.run();
        }
    }
}

The client


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

public class Requester
{
    Socket requestSocket;
    ObjectOutputStream out;
    ObjectInputStream in;
    String message;

    Requester()
    {
    }

    void run()
    {
        try
        {
            //1. creating a socket to connect to the server
            requestSocket = new Socket("localhost", 2004);
            System.out.println("Connected to localhost in port 2004");
            //2. get Input and Output streams
            out = new ObjectOutputStream(requestSocket.getOutputStream());
            out.flush();
            in = new ObjectInputStream(requestSocket.getInputStream());
            //3: Communicating with the server
            do
            {
                try
                {
                    message = (String) in.readObject();
                    System.out.println("server>" + message);
                    sendMessage("Hi my server");
                    message = "bye";
                    sendMessage(message);
                } catch (ClassNotFoundException classNot)
                {
                    System.err.println("data received in unknown format");
                }
            } while (!message.equals("bye"));
        } catch (UnknownHostException unknownHost)
        {
            System.err.println("You are trying to connect to an unknown host!");
        } catch (IOException ioException)
        {
            ioException.printStackTrace();
        } finally
        {
            //4: Closing connection
            try
            {
                in.close();
                out.close();
                requestSocket.close();
            } catch (IOException ioException)
            {
                ioException.printStackTrace();
            }
        }
    }

    void sendMessage(String msg)
    {
        try
        {
            out.writeObject(msg);
            out.flush();
            System.out.println("client>" + msg);
        } catch (IOException ioException)
        {
            ioException.printStackTrace();
        }
    }

    public static void main(String args[])
    {
        Requester client = new Requester();
        client.run();
    }
}

Comments

  1. The new Wynn Hotel, Casino & Skypod | MHS Hub
    The Wynn Hotel, 전라북도 출장샵 Casino & Skypod, Las Vegas, Nevada, 대구광역 출장안마 United States. Address: 3475 West 천안 출장마사지 Flamingo Rd., Las 통영 출장안마 Vegas, 원주 출장마사지 NV 89109 Phone: 702-770-7000, Website: www.wynnlasvegas.com/encore.

    ReplyDelete

Post a Comment