Rev 187 | Rev 189 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*******************************************************************************
* File: P1Server.java
* Author: Ira W. Snyder (devel@irasnyder.com)
* Class: CS380 - Computer Networking
*
* Assignment: Project #1
* Date Last Modified: 2006-01-18
*
* Purpose: Opens a listening TCP Socket on port 1337. It echoes back
* every packet that it recieves.
*
******************************************************************************/
import java.io.*;
import java.net.*;
public class P1Server
{
public static final int portNumber = 1337;
public static final String exitSeq = "QUIT";
/**
* Method: main()
* Purpose: This method creates a listening socket on port 1337 and
* accepts the first connection made to it. It then echoes back anything
* sent to it, until it recieves a "QUIT", at which point it terminates.
*/
public static void main (String[] args) throws IOException
{
ServerSocket serverSocket = null;
/* Try to open the port for listening */
try
{
serverSocket = new ServerSocket (portNumber);
}
catch (IOException e)
{
System.err.println ("Could not listen on port: " + portNumber);
System.exit(1);
}
Socket clientSocket = null;
/* Try to accept the first connection that comes in */
try
{
clientSocket = serverSocket.accept();
}
catch (IOException e)
{
System.err.println ("Accept failed.");
System.exit(1);
}
/* Set up input and output streams */
PrintWriter out = new PrintWriter (clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
/* Use Strings to hold the input and output */
String inputLine, outputLine;
/* Read input and echo back to output */
while ((inputLine = in.readLine()) != null)
{
/* If we recieve a message to quit, do so. */
if (inputLine.equals (exitSeq))
break;
/* Echo back what we recieved */
out.println (inputLine);
}
/* Cleanup */
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}