Ex2a Ex2b
import [Link]; import [Link];
public class Ex2a { import [Link].*;
public static void public class Ex2bnew
main(String[]args)throws
{
Exception
public static void main(String[] args) {
{
try { InetAddress
InetAddress addr=[Link]();
addr=[Link]();
Socket thesoc=new Socket(addr,139);
[Link]("Host
[Link]("Connected to
Name:"+[Link]());
"+[Link]()+"on the port
[Link]("IP "+[Link]()+"from port
Address:"+[Link]()); "+[Link]()+"of
"+[Link]()); }
}
catch(UnknownHostException e) {
}
[Link]("Can't find "+e); }
catch(SocketException e) {
OUTPUT
[Link]("Could not connect
Host Name:MSC01
"+e); }
IP Address:[Link]
catch(IOException e) {
[Link](e); } } }
OUTPUT
Connected to MSC01/[Link] on the
port 139 from port 51101 of /[Link]
Ex3 a[len++]=0; }
import [Link]; k=len-16;
public class Ex3 { for(int i=0;i<len;i++) {
void div (int a[],int k) { b[i]=a[i]; }
int gp[]={1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1}; [Link](a, k);
int count=0; for(int i=0;i<len;i++) {
for(int i=0;i<k;i++) { a[i]=a[i]^b[i];}
if(a[i]==gp[0]) { [Link]("Data to be
transmitted");
for(int j=i;j<17;j++) {
for(int i=0;i<len;i++) {
a[j]=a[j]^gp[count++]; }
[Link](a[i]+""); }
count=0; } } }
[Link]();
public static void main(String[] args) {
[Link]("Enter received data");
int a[]=new int[100];
for(int i=0;i<len;i++) {
int b[]=new int[100];
a[i]=[Link](); }
int len,k;
[Link](a, k);
Ex3 ob=new Ex3();
for(int i=0;i<len;i++) {
[Link]("Enter the length of
the data frame"); if(a[i]!=0) {
Scanner sc=new Scanner([Link]); flag=1;
len=[Link](); break; } }
int flag=0; if(flag==1) {
[Link]("Enter the message"); [Link]("Error in data"); }
for(int i=0;i<len;i++) { else {
a[i]=[Link](); } [Link]("No error"); } } }
for(int i=0;i<16;i++) {
OUTPUT
Enter the length of the data frame
2
Enter the message
1
0
Data to be transmitted
100010000001000010
Enter received data
100010000001000010
No error
OUTPUT
Enter the length of the data frame
2
Enter the message
1
0
Data to be transmitted
100010000001000010
Enter received data
100010000001000010
No error
Sliding window
Sender:
import [Link].*; sws=-nf;
import [Link].*; [Link]("Acknowledgement
received");
public class slidsend {
ano=[Link]([Link]());
public static void main(String args[])
throws Exception { [Link]("for "+ano+" frames");
ServerSocket ser=new ServerSocket(10); sws+=nf; }
Socket s=[Link](); else {
DataInputStream in=new [Link]("The number of frames
DataInputStream([Link]); exceeds window size");
DataInputStream in1=new break; }
DataInputStream([Link]());
[Link]("\nDo you want to
String sbuff[]=new String[8]; send some more frames?\n");
PrintStream p; ch=[Link]();
int sptr=0,sws=8,nf,ano,i; [Link](ch); }
String ch; while([Link]("yes"));
do { [Link](); } }
p=new PrintStream([Link]());
[Link]("Enter the number of
frames: ");
nf=[Link]([Link]());
[Link](nf);
if(nf<=sws-1) {
[Link]("Enter the "+nf+"
messages to be send\n");
for(i=1;i<=nf;i++){
sbuff[sptr]=[Link]();
[Link](sbuff[sptr]);
sptr=++sptr%8; }
import [Link].*; OUTPUT
import [Link].*; //SENDER
class slidreceive { Enter the number of frames:
public static void main(String a[])throws 2
Exception {
Enter the 2 messages to be send
Socket s=new
HI
Socket([Link](),10);
DataInputStream in=new HELLO
DataInputStream([Link]()); Acknowledgement received
PrintStream p=new for 2 frames
PrintStream([Link]());
Do you want to send some more frames?
int i=0,rptr=-1,nf,rws=8; String rbuf[]=new
String[8]; String ch; NO
[Link](); do {
nf=[Link]([Link]()); //RECEIVER
if(nf<=rws-1) { The received Frame 0 is : HI
for(i=1;i<=nf;i++) { The received Frame 1 is : HELLO
rptr=++rptr%8; Acknowledgment sent
rbuf[rptr]=[Link]();
[Link]("The received Frame "
+rptr+" is : "+rbuf[rptr]); }
rws-=nf;
[Link]("\nAcknowledgment
sent\n"); [Link](rptr+1); rws+=nf; }
else
break;
ch=[Link](); }
while([Link]("yes")); } }
STOP AND WAIT : seq = 1 – seq;
Sender: i++; }
import [Link].*; else {
import [Link].*; [Link]("ACK mismatch!
Resending frame...");} }
import [Link];
[Link]("exit");
public class SwSender {
[Link]();
public static void main(String[] args)
throws Exception { [Link]();} }
Socket socket = new Socket("localhost",
5000);
DataOutputStream out = new
DataOutputStream([Link]
m());
DataInputStream
in=newDataInputStream([Link]
tream());
Scanner sc = new Scanner([Link]);
[Link]("Enter number of frames
to send: ");
int n = [Link]();
[Link]();
int seq = 0;
for (int i = 0; i < n; ) {
[Link]("Enter data for frame " +
(i + 1) + ": ");
String data = [Link]();
[Link](seq + ":" + data);
[Link]("Sent frame with Seq="
+ seq + ". Waiting for ACK...");
String ack = [Link]();
[Link]("Received: " + ack);
if ([Link]("ACK" + seq)) {
Receiver: [Link]("ACK"+(1-expectedSeq));}}
import [Link].*; [Link]();
import [Link].*; [Link](); } }
public class SWReceiver {
public static void main(String[] args)
throws Exception {
OUTPUT :
ServerSocket server = new
//sender
ServerSocket(5000);
C:\>java [Link]
[Link]("Receiver ready...");
Enter number of frames to send: 2
Socket socket = [Link]();
Enter data for frame 1: John
DataInputStream in = new
DataInputStream([Link]() Sent frame with Seq=0. Waiting for ACK...
); Received: ACK0
DataOutputStream out = new Enter data for frame 2: PSGCAS
DataOutputStream([Link]
m()); Sent frame with Seq=1. Waiting for ACK...
int expectedSeq = 0; Received: ACK1
while (true) {
String frame = [Link](); //receiver
if ([Link]("exit")) break; C:\>java [Link]
String[] parts = [Link](":", 2); Receiver ready...
int seq = [Link](parts[0]); Received frame with Seq=0, Data: John
String data = parts[1]; Received frame with Seq=1, Data: PSGCAS
if (seq == expectedSeq) {
[Link]("Received frame with
Seq=" + seq + ", Data: " + data);
[Link]("ACK" + seq);
expectedSeq = 1 - expectedSeq; }
else {
[Link]("Duplicate frame
received with Seq=" + seq + ".
Discarding.");