Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.25 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.Date;
  4.  
  5.  
  6. public class Receiver
  7. {
  8.     static final int PORT_NUMBER = 42730;   //port to connect on
  9.     private DatagramSocket sock;            //receiver socket
  10.     private String hostfile;                //output file
  11.     private String targethost;              //connecting host for receiver
  12.     private int windowsize;                 //size of window
  13.     private int timeout;                    //timeout in milliseconds
  14.     private int payload;                    //size of payload in bytes
  15.    
  16.     public Receiver(String hostfile, String targethost, int windowsize, int timeout, int payload)
  17.     {
  18.         try
  19.         {
  20.             this.hostfile = hostfile;
  21.             this.targethost = targethost;
  22.             this.windowsize = windowsize;
  23.             this.timeout = timeout;
  24.             this.payload = payload;
  25.         }
  26.         catch(Exception e)
  27.         {
  28.             e.printStackTrace();
  29.         }
  30.     }
  31.    
  32.     public void run()
  33.     {
  34.         try
  35.         {
  36.              sock = new DatagramSocket(PORT_NUMBER);
  37.              if ( sock != null )
  38.                  connected();      
  39.         }
  40.         catch (Exception e)
  41.         {
  42.             System.out.println("Error: " + e);
  43.         }
  44.     }
  45.    
  46.     private void connected()
  47.     {
  48.        try
  49.        {        
  50.            int seqnum;  //sequence number
  51.           int length;   //length of data
  52.           byte[] data;  //data
  53.           byte[] hash;  //checksum
  54.            
  55.            byte[] incData = new byte[payload];
  56.            DatagramPacket dp = new DatagramPacket(incData, incData.length);
  57.            sock.receive(dp);
  58.            
  59.            incData = dp.getData();
  60.            
  61.            ByteArrayInputStream byteArray = new ByteArrayInputStream(dp.getData());
  62.            DataInputStream dis = new DataInputStream(byteArray);
  63.            
  64.            seqnum = dis.readInt();
  65.            length = dis.readInt();
  66.            //data = dis.read(dp.getData(), 8, length);
  67.            //hash = dis.read(dp.getData(), 8+length, 16);
  68.            
  69.           System.out.println( "Got a connection: " +
  70.                           (new Date(new Date().getTime() + 7200000 )).toString());
  71.           System.out.println("Connected to: " + sock.getInetAddress() +
  72.                              "    Port: " + sock.getPort() );
  73.          
  74.           /*
  75.           int seqnum;   //sequence number
  76.           int length;   //length of data
  77.           byte[] data;  //data
  78.           byte[] hash;  //checksum
  79.          
  80.           byte[] incData = new byte[payload];
  81.           DatagramPacket dp = new DatagramPacket(incData, incData.length);
  82.           sock.receive(dp);
  83.          
  84.           incData = dp.getData();
  85.          
  86.           ByteArrayInputStream byteArray = new ByteArrayInputStream(dp.getData());
  87.           DataInputStream dis = new DataInputStream(byteArray);
  88.          
  89.           seqnum = dis.readInt();
  90.           length = dis.readInt();
  91.           //data = dis.read(dp.getData(), 8, length);
  92.           //hash = dis.read(dp.getData(), 8+length, 16);
  93.           */
  94.          
  95.           //extract seqnum from packet
  96.            
  97.             //if seqnum < base
  98.                 //ack packet
  99.             //else if seqnum >= base+w
  100.                 //drop
  101.             //if base<=seqnum<base+w
  102.                 //ack_packet(seqnum)
  103.                 //if seqnum=base
  104.                     //for i=seqnum;i<seqnum+w;i++
  105.                         //write packet to file(i)
  106.                         //base++
  107.             //else
  108.                 //buffer packet(seqnum)
  109.        }
  110.        catch ( Exception ex )
  111.        {
  112.           System.out.println( "Error: " + ex );
  113.        }        
  114.     }        
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement