Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-07-2008, 09:16 PM
Java Tip's Avatar
Moderator
 
Join Date: Nov 2007
Posts: 1,691
Rep Power: 5
Java Tip will become famous soon enoughJava Tip will become famous soon enough
Default How to create a Quote Server in Java
Code:
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Date;

public class QuoteServer {
  public static void main(String[] args) throws IOException {
    new QuoteServerThread().start();
  }
}

class QuoteServerThread extends Thread {
  private DatagramSocket socket = null;

  private DataInputStream in = null;

  private boolean moreQuotes = true;

  public QuoteServerThread() throws IOException {
    super("QuoteServerThread");
    socket = new DatagramSocket(4445);
    try {
      in = new DataInputStream(new FileInputStream("one-liners.txt"));
    } catch (FileNotFoundException e) {
      System.err
          .println("Could not open quote file. Serving time instead.");
    }
  }

  public void run() {

    while (moreQuotes) {
      try {
        byte[] buf = new byte[256];

        // receive request
        DatagramPacket packet = new DatagramPacket(buf, buf.length);
        socket.receive(packet);

        // figure out response
        String dString = null;
        if (in == null)
          dString = new Date().toString();
        else
          dString = getNextQuote();
        dString.getBytes(0, dString.length(), buf, 0);

        // send the response to the client at "address" and "port"
        InetAddress address = packet.getAddress();
        int port = packet.getPort();
        packet = new DatagramPacket(buf, buf.length, address, port);
        socket.send(packet);
      } catch (IOException e) {
        e.printStackTrace();
        moreQuotes = false;
      }
    }
    socket.close();
  }

  private String getNextQuote() {
    String returnValue = null;
    try {
      if ((returnValue = in.readLine()) == null) {
        in.close();
        moreQuotes = false;
        returnValue = "No more quotes. Goodbye.";
      }
    } catch (IOException e) {
      returnValue = "IOException occurred in server.";
    }
    return returnValue;
  }

}

/////////////////////////////////////////////////

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class QuoteClient {
  public static void main(String[] args) throws IOException {

    if (args.length != 1) {
      System.out.println("Usage: java QuoteClient <hostname>");
      return;
    }

    // get a datagram socket
    DatagramSocket socket = new DatagramSocket();

    // send request
    byte[] buf = new byte[256];
    InetAddress address = InetAddress.getByName(args[0]);
    DatagramPacket packet = new DatagramPacket(buf, buf.length, address,
        4445);
    socket.send(packet);

    // get response
    packet = new DatagramPacket(buf, buf.length);
    socket.receive(packet);

    // display response
    String received = new String(packet.getData());
    System.out.println("Quote of the Moment: " + received);

    socket.close();
  }
}
Bookmark Post in Technorati
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create ToolTip in Java 3d roshithmca AWT / Swing 0 02-04-2008 07:57 AM
Automation server can't create object katie JavaServer Pages (JSP) and JSTL 1 08-06-2007 11:53 PM
how to create a menu bar in java tommy New To Java 1 08-05-2007 08:43 AM
Create a Calculator in Java Albert New To Java 2 07-04-2007 09:01 AM
how to create pdf document from java sreedharvlsi New To Java 1 07-02-2007 12:57 PM


All times are GMT +2. The time now is 02:51 PM.



VBulletin, Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2009, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org