/*

 * Created on 04.04.2004

 *

 * Example Server implementation for Sockets lab12

 */



import java.io.*;

import java.net.*;



/**

 * @author Daria Antonova

 *

 * Emaple implementation of Server for lab12

 */

public class MyServer {

	public static void main(String args[]) {



		// declare a server socket (for listening)

		ServerSocket echoServer = null;

		// declare a client socket for the server

		Socket clientSocket = null;

		

		// declare an input and an output stream

		DataInputStream is;

		PrintStream os;

		String line;

		

		int port = 6070; // port on which to poen the server socket

		// Note that a port less than 1023 can be used here only

		// by priveleged users (root, super user permissions)



		try {

			System.out.println("Starting echo server on "+  

					InetAddress.getLocalHost() +" port "+ port);

			echoServer = new ServerSocket(port);

			System.out.println("success");

			

		}

		catch (IOException e) {

			System.out.println(e);

		}  



		try {

			// Create a socket object from the ServerSocket 

			// to listen and accept connections

			System.out.println("Ready to receive requests from clients");

			clientSocket = echoServer.accept();

			System.out.println("Accept request from "+

					((InetAddress)clientSocket.getInetAddress()).getHostName());



			// Open input and output streams

			is = new DataInputStream(clientSocket.getInputStream());

			os = new PrintStream(clientSocket.getOutputStream());



			System.out.println("Ready to receive data from "+

					((InetAddress)clientSocket.getInetAddress()).getHostName());

			while (true) { // echo data back to client while server receives data

				line = is.readLine();

				os.println(line);

			}

		}  

		catch (IOException e) {

			System.out.println(e);

		}

	}

}


