Server
import [Link].*;
import [Link].*;
import [Link].*;
class gbserver
{
public static void main(String args[]) throws Exception
{
[Link]("Server");
[Link]("Waiting for the connection");
InetAddress addr=[Link]("localhost");
ServerSocket s=new ServerSocket(5000);
Socket s1=new Socket();
s1=[Link]();
BufferedInputStream in=new BufferedInputStream([Link]());
DataOutputStream out=new DataOutputStream([Link]());
[Link]("Recieved request for sending frame");
int p=[Link]();
boolean f[]=new boolean[p];
int pc=[Link]();
[Link]("Sending...");
if(pc==0)
{
for(int i=0;i<p;i++)
{
[Link]("Sending frame number"+i);
[Link](i);
[Link]();
[Link]("Waiting for Acknowlegement");
try
{
[Link](1000);
}
catch(Exception e){}
int a=[Link]();
[Link]("Received aknowledgement for frame "+i +"as
"+a);
}
[Link]();
}
else
{
for(int i=0;i<p;i++)
{
if(i==2)
{
[Link]("SEnding frame no"+i);
}
else
{
[Link]("Sending frame no"+i);
[Link](i);
[Link]();
[Link]("Waiting for Acknowlgement");
try
{
[Link](1000);
}
catch(Exception e){}
int a=[Link]();
if(a!=255)
{
[Link]("Recived Acknowlgement for frame
"+i+" as "+a);
f[i]=true;
}
}
}
for(int a=0;a<p;++a)
{
if(f[a]==false)
{
[Link]("Resending the frame "+a);
[Link](a);
[Link]();
[Link]("Waiting for ack");
try
{
[Link](2000);
}
catch(Exception e){}
int b=[Link]();
[Link]("Recieved ack for frame no"+ a +"as"+b);
f[a]=true;
}
}
[Link]();
}
[Link]();
[Link]();
}
}
Client
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
class gbclient
{
public static void main(String[] args) throws Exception
{
InetAddress addr=[Link]("localhost");
[Link](addr);
Socket s=new Socket(addr,5000);
BufferedInputStream in=new BufferedInputStream([Link]());
DataOutputStream out =new DataOutputStream([Link]());
Scanner sc=new Scanner([Link]);
[Link]("Client.. ");
[Link]("Connect");
[Link]("Enter the number of frame to requested to the server");
int c=[Link]();
[Link](c);
[Link]();
[Link]("Enter type of [Link]-1 : No-Error-0");
int choice=[Link]();
[Link](choice);
int check=0;
int i=0;
int j=0;
if(choice==0)
{
for(j=0;j<c;++j)
{
i=[Link]();
[Link]("Recieved Frame no is:"+i);
[Link]("Sending Acknowledgment for frame no :"+i);
[Link](i);
[Link]();
}
}
else
{
for(j=0;j<c;++j)
{
i=[Link]();
if(i==check)
{
[Link]("i:"+i +"check: "+check);
[Link]("Received frame no:"+i);
[Link]("Sending ack for frame no"+i);
[Link](i);
++check;
}
else
{
--j;
[Link]("discarded frame no:"+i);
[Link]("sending neg ack");
[Link](-1);
}
[Link]();
}
}
[Link]();
[Link]();
[Link]("Quiting");
}
}