//import classes
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.awt.*;
//Code for the AppServer class
class MyFrame extends Frame implements ActionListener
{
MyFrame()
{
setSize(600,400);
setVisible(true);
this.setTitle("Welcome to server");
JPanel panel=new JPanel();
//panel.setBackground(new Color(0,100,100));
setLayout(new FlowLayout());
JButton btnReport;
JButton btnExit;
btnReport=new JButton("Report");
panel.add(btnReport);
btnExit=new JButton("Exit");
panel.add(btnExit);
add(panel);
btnReport.addActionListener(this);
btnExit.addActionListener(this);
setVisible(true);//add listener to the Login button
}
public void actionPerformed(ActionEvent ae)
{
String str = ae.getActionCommand();
if(str.equals("Report"))
{
new Reportjen();
}
else if(str.equals("Exit"))
{
System.exit(0);
}
}
}
public class AppServer implements Runnable
{
ServerSocket server;
Socket fromClient;
Thread serverThread;
InetAddress host;
public AppServer()
{
MyFrame obj=new MyFrame();
System.out.println("Conference Engine started...");
try
{
host = InetAddress.getLocalHost();
System.out.println("Host name:'" + host.getHostName()
+ "' has IP address: " + host.getHostAddress());
server = new ServerSocket(1001);
serverThread = new Thread(this);
serverThread.start();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch(Exception e)
{
System.out.println("Cannot start the thread: " + e);
}
}
public static void main(String args[])
{
new AppServer();
}
public void run()
{
try
{
while(true)
{
//Listening to the clients request
fromClient = server.accept();
//Creating the connect object
Connect con = new Connect(fromClient);
}
}
catch(Exception e)
{
System.out.println("Cannot listen to the client" + e);
}
}
}
//Code for the connect class
class Connect
{
ObjectOutputStream streamToClient;
int ctr=0;
BufferedReader streamFromClient;
static Vector vector;
static Vector vctrList;
String message=" ";
static String str=new String("UsrList");
static
{
vector=new Vector(1,1);
vctrList=new Vector(1,1);
vctrList.addElement((String)str);
}
int verify(String mesg)
{
try
{
RandomAccessFile RAS=new RandomAccessFile("UsrPwd.txt", "r");
int i=0;
String str="";
while((RAS.getFilePointer())!=(RAS.length()))
{
str=RAS.readLine();
if(str.equals(mesg))
{
ctr=1;
break;
}
}
RAS.close();
}
catch(Exception e)
{
}
return ctr;
}//end of verify()
int checkFile(String mesg)
{
int chk=1;
try
{
RandomAccessFile RS=new RandomAccessFile("UsrPwd.txt", "r");
int i=0;
String str="";
String colon=new String(":");
int index=((String)mesg).lastIndexOf(colon);
String userName=(String)mesg.substring(0,index);
while((RS.getFilePointer())!=(int)(RS.length()))
{
str=RS.readLine();
int index1=((String)str).lastIndexOf(colon);
String usrName=(String)str.substring(0,index1);
if(usrName.equals(userName))
{
chk=0;
break;
}
}//end of while
RS.close();
}//end of try
catch(Exception e)
{
}
return chk;
}//end of chkFile
public Connect(Socket inFromClient)
{
//Retrieving the clients stream
String msg="",msg1="";
String mesg="";
try
{
streamFromClient = new BufferedReader(new InputStreamReader(inFromClient.getInputStream()));
streamToClient= new ObjectOutputStream(inFromClient.getOutputStream());
msg=streamFromClient.readLine();
//mesg=streamFromClient.readLine();
if((msg.equals("From Timer")))
{
streamToClient.writeObject(vector);
streamToClient.writeObject(vctrList);
}
else if(msg.equals("LoginInfo"))
{ System.out.println(inFromClient.getInetAddress());
msg=streamFromClient.readLine();
int ver=verify(msg);
if(ver==1)
{
msg1=streamFromClient.readLine();
FileOutputStream out = new FileOutputStream("Loginfo.txt",true);
PrintStream p = new PrintStream( out );
p.println();
p.println(msg1);
p.close();
String colon=new String(":");
int index=((String)msg).lastIndexOf(colon);
String userName=(String)msg.substring(0,index) +inFromClient.getInetAddress();
if(!(vctrList.indexOf((String)userName)>0))
{
streamToClient.writeObject("Welcome"+inFromClient.getInetAddress());
vctrList.addElement((String)userName);
}
}
else
{
streamToClient.writeObject("Login denied");
}
}
else if(msg.equals("RegisterInfo"))
{
msg=streamFromClient.readLine();
int ret=checkFile(msg);
if(ret==0)
streamToClient.writeObject("User Exists");
if(ret==1)
{
FileOutputStream out = new FileOutputStream("UsrPwd.txt",true);
PrintStream p = new PrintStream( out );
p.println();
p.println(msg);
p.close();
streamToClient.writeObject("Registered");
}
}
else if(msg.equals("User Logout"))
{
String remUser=streamFromClient.readLine();
boolean b=vctrList.removeElement((String)remUser);
}
else
{
message=message+msg;
vector.addElement((String)message);
streamToClient.writeObject(vector);
}
}//end of try
catch(Exception e)
{
System.out.println("Cannot get the client stream connect" + e);
}
finally
{
try
{
inFromClient.close();
}
catch(IOException e)
{}
}
}//end of connect
}