ACN Mod-Multihost New
MULTI CLIENT
import java.io.*;
import java.net.*;
public class MultiClient
{
public static void main(String[] args) throws Exception
{
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
try
{
socket = new Socket(“angel”, 4444); // ’angel’->own computer name
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch (Exception e)
{
System.out.println(“Error:”);
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String toServer;
String fromUser;
System.out.print(“\nEnter data to Send: “);
while ((toServer = stdIn.readLine()) != null)
{
out.println(toServer);
fromServer = in.readLine();
System.out.println(“Server: ” + fromServer);
if (fromServer.equals(“EXIT”))
break;
System.out.print(“\nEnter data to Send: “);
}
out.close();
in.close();
stdIn.close();
socket.close();
}
}
=========================================
MULTI SERVER
import java.net.*;
import java.io.*;
public class MultiServer
{
public static void main(String[] args) throws Exception
{
ServerSocket serverSocket = null;
boolean listening = true;
try
{
serverSocket = new ServerSocket(4444);
}
catch (Exception e)
{
System.out.println(“Error:”);
System.exit(-1);
}
while(listening)
{
System.out.println(“Waiting for data….”);
new MultiServerThread(serverSocket.accept()).start();
}
serverSocket.close();
}
}
class MultiServerThread extends Thread
{
private Socket socket = null;
public MultiServerThread(Socket socket)
{
super(“MultiServerThread”);
this.socket = socket;
}
public void run()
{
try
{
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine, outputLine;
outputLine = “”;
while((inputLine = in.readLine()) != null)
{
synchronized(this)
{
outputLine = inputLine.toUpperCase();
out.println(outputLine);
System.out.println(“From Client: “+socket.getInetAddress().getHostName()+”->”+inputLine);
if (inputLine.equalsIgnoreCase(“exit”))
break;
}
}
out.close();
in.close();
socket.close();
}
catch (Exception e)
{
System.out.println(“Error:”);
}
}
}