Você está na página 1de 6

import

import
import
import
public
{

java.io.*;
java.net.*;
java.awt.*;
java.awt.event.*;
class server4 extends Frame implements Runnable

String filen="";
int user,qq,totalp;
int i,k,kk,sack;
Thread t,datasend;
Thread t1[]=new Thread[10];
public ServerSocket ss=null;
public Socket s[]=new Socket[10];
OutputStream out[]=new OutputStream[10];
InputStream in[]=new InputStream[10];
int cport[]=new int[10];
int sen[];
List ser,que;
Label l1,l2;
Frame fr;
queue q;
alert alert1;
public server4()
{
fr=new Frame("SERVER");
alert1=new alert();
totalp=0;
q=new queue();
sen=new int[10];
t=new Thread(this,"viswa");
datasend=new Thread(this,"datasen");
t.start();
sack=0;
ser=new List(10,true);
ser.setBounds(20,100,80,100);
que=new List(10,true);
que.setBounds(250,100,80,100);
l1=new Label("Inside The Queue --->");
l1.setBounds(100,100,140,40);
l2=new Label("Possibility of intruder");
//fr.setDefaultCloseOperation(EXIT_ON_CLOSE);
fr.setSize(350,250);
fr.setLayout(null);
fr.setVisible(true);
fr.add(ser);
fr.add(l1);
fr.add(que);
datasend.start();
}
public void run()
{
if(Thread.currentThread().getName().equals("viswa"))
{
try
{
i=1;
ss=new ServerSocket(2000);
while(true)
{

System.out.println("Waiting for connection.....");


s[i]=ss.accept();
out[i]=s[i].getOutputStream();
in[i]=s[i].getInputStream();
t1[i]=new Thread(this,Integer.toString(i));
t1[i].start();
System.out.println();
System.out.println("Connected with client");
ser.add(Integer.toString(i));
try
{
filen="";
filen=filen+"@"+Integer.toString(i);
out[i].write(filen.getBytes());
out[i].write((byte)-1);
filen="";
filen=filen+"$"+Integer.toString(i);
int rr=1;
while(rr<=i)
{
out[rr].write(filen.getBytes());
out[rr].write((byte)-1);
rr++;
}
}
catch(Exception e)
{
System.out.println(e);
}
i++;
}
}
catch(Exception e)
{
System.out.println(e);
}
}
else if(Thread.currentThread().getName().equals("datasen"))
{
//System.out.println("the mater is");
try{
while(true){
//System.out.println("the mater is"+que.getItemC
ount());
String sss="";
//System.out.println("the value of size is"+q.si
ze());
if(q.size()!=0)
{
Thread.sleep(3000);
System.out.println("asdfound");
sss=q.a[q.front];
System.out.println(sss);
int k;
for(k=0;k<sss.length();k++)
{
if(sss.charAt(k)=='*')
break;

}
System.out.println(k);
String temps="";
temps=temps+sss.charAt(k+1);
System.out.println(sss.charAt(k+1));
out[Integer.parseInt(temps)].write(q.a[q
.front].substring(0,k).getBytes());
out[Integer.parseInt(temps)].write((byte
)-1);
q.qdelete();
torcher();
}
}
}
catch(Exception e)
{
System.out.println(e);
}
}
else
{
int tno=Integer.parseInt(Thread.currentThread().getName(
));
String data="";
String temp="";
byte b;
int jj;
try
{
int stop=0;
int ii=1;
while(true)
{
b=(byte)in[tno].read();
data="";
if((char)b=='#')
{
System.out.println("entered");
for(jj=1;jj<=qq;jj++)
{
if(sen[jj]==user)
sack=sack+1;
//System.out.println("user"+user
+"sack"+sack);
}
if(sack==qq)
{
sack=0;
out[user].write("Acknowlegement
received".getBytes());
out[user].write((byte)-1);
}
}
else
{
while(b!=-1)
{
if((char)b!='@'&&stop!=1)
{
//System.out.print((char)b);

data=data+(char)b;
}
else if(stop==1)
{
//System.out.println((char)b);
temp="";
user=tno;
temp=temp+(char)b;
sen[ii]=Integer.parseInt(temp);
System.out.print("sen value "+se
n[ii]);
stop=1;
ii++;
}
else
stop=1;
b=(byte)in[tno].read();
}
ii=ii-1;
qq=ii;
int aa=1;
filen="";
filen=filen+Integer.toString(tno)+":"+data;
String totalfilen;
int totalaa,totalii,totalsen[];
while(aa<=ii)
{
try
{
new db().send_message(tno,sen[aa
],(String)data);
System.out.println("the vijay fi
len is "+filen+"*"+sen[aa]);
if(q.qinsert(filen+"*"+sen[aa])=
=-1)
{
alert1.disp1();
callintrud();
repaint();
}
torcher();
totalp++;
System.out.println("found");
}
catch(Exception e)
{
System.out.println(e);
System.out.print("here");
}
aa++;
}
if(data.equals("dis"))
{
//mem.remove(Integer.toString(tno));
}
stop=0;
ii=1;
}
}

}
catch(Exception e)
{
System.out.println(e);
}
}
}
public void torcher()
{
que.removeAll();
int k=1,i=q.front;
while(i!=q.rear&&q.front!=0&&q.rear!=0)
{
que.add(q.a[i]);
i++;
if(i>q.n)
i=1;
k++;
System.out.println("the element at queue
at "+k+"is "+q.a[i]);
}
que.add(q.a[i]);
add(que);
}
public void callintrud()
{
int k=1,i=q.front,intrudcount=0;
while(i!=q.rear&&q.front!=0&&q.rear!=0)
{
if(q.a[1].equals(q.a[i]))
intrudcount++;
i++;
if(i>q.n)
i=1;
k++;
}
if(q.a[1].equals(q.a[i]))
intrudcount++;
System.out.println(intrudcount);
if(intrudcount==10)
{
alert1.disp2();
}
repaint();
}
public static void main(String args[])
{
server4 c=new server4();
//hai h=new hai();
}
}
class alert extends Frame implements ActionListener
{
Label l1,l2;
Button b1;
alert()
{
l1=new Label("Possibility of intruder and Packets dropped");

l2=new Label("confirmation of intruder since same msg to same destinatio


n");
b1=new Button("OK");
setSize(600,100);
setLayout(new FlowLayout());
}
public void disp1()
{
add(l1);
add(b1);
b1.addActionListener(this);
setVisible(true);
}
public void disp2()
{
remove(l1);
remove(b1);
add(l2);
add(b1);
b1.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
System.out.println("hai");
String str=ae.getActionCommand();
if(str.equals("OK"))
{
remove(l1);
remove(l2);
remove(b1);
setVisible(false);
}
}
}

Você também pode gostar