Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.04 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.*;
  3. import java.security.*;
  4.  
  5.    
  6.  
  7. public class Sender
  8. {
  9.    
  10.     private static final int PORT_NUMBER = 42730;
  11.         //dragon.cs.uni.edu = 134.161.241.111
  12.     private File clientfile;
  13.     private String targethost;
  14.     private int windowsize;
  15.     private int timeout;
  16.     private int payload;
  17.    
  18.     public Sender(File clientfile, String targethost, int windowsize, int timeout, int payload)
  19.     {
  20.         try
  21.         {
  22.             this.clientfile = clientfile;
  23.             this.targethost = targethost;
  24.             this.windowsize = windowsize;
  25.             this.timeout = timeout;
  26.             this.payload = payload;
  27.            
  28.             File file = new File("C:\\Program Files\\eclipse\\workspace\\Assignment\\test.txt");
  29.             byte[] fileData = getBytesFromFile(); //convert file into bytes
  30.             DatagramSocket sock = new DatagramSocket(PORT_NUMBER);
  31.             //ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
  32.             //DataOutputStream dos = new DataOutputStream(byteArray);
  33.             int seqnum = 0; //initialize sequence number
  34.             //byte[] buffReceive = new byte[512];
  35.             byte[] buffSend = new byte[512];
  36.            
  37.            
  38.             //checksum payload
  39.             //MessageDigest md = MessageDigest.getInstance("MD5");
  40.             //md.update(fileData);
  41.             //byte[] hash = md.digest();
  42.            
  43.             //make packet[seq#, length, data, checksum]
  44.             //dos.writeInt(seqnum);
  45.             //dos.writeInt(fileData.length);
  46.             //dos.write(fileData);
  47.             //dos.write(hash);
  48.             //buffSend = byteArray.toByteArray();
  49.             while (true)
  50.             {
  51.                 //increment sequence number
  52.                 seqnum++;
  53.                 Packet newpack = new Packet(fileData, seqnum);
  54.                
  55.                 buffSend = newpack.digest();
  56.                
  57.                 // read min(segment size, remaining file size)
  58.                 DatagramPacket dp = new DatagramPacket(buffSend, buffSend.length, InetAddress.getByName("dragon.cs.uni.edu"), PORT_NUMBER);
  59.                 sock.send(dp);
  60.                
  61.                 //checksum payload
  62.                 //md.update(fileData);
  63.                 //hash = md.digest();
  64.                
  65.                 //make packet[seq#, length, data, checksum]
  66.                 //dos.writeInt(seqnum);
  67.                 //dos.writeInt(fileData.length);
  68.                 //dos.write(fileData);
  69.                 //dos.write(hash);
  70.                 //buffSend = byteArray.toByteArray();
  71.                 //buffSend = newpack.digest();
  72.             }
  73.         }
  74.         catch(Exception e)
  75.         {
  76.             System.out.println("Unable to set up sender.");
  77.             System.exit(0);
  78.         }  
  79.     }
  80.    
  81.     private byte[] getBytesFromFile() throws IOException
  82.     {
  83.         InputStream stream = new FileInputStream(clientfile);
  84.        
  85.         long length = clientfile.length();
  86.        
  87.         byte[] bytes = new byte[(int)length];
  88.        
  89.         int offset = 0;
  90.         int numRead = 0;
  91.         while (offset < bytes.length && (numRead=stream.read(bytes, offset, bytes.length-offset)) >= 0)
  92.         {
  93.             offset += numRead;
  94.         }
  95.        
  96.         if (offset < bytes.length) {
  97.             throw new IOException("Could not completely read file "+clientfile.getName());
  98.         }
  99.    
  100.         stream.close();
  101.         return bytes;
  102.     }
  103.    
  104.     /**
  105.     private void sendData(DatagramSocket sock, DatagramPacket packet)
  106.     {
  107.         InetAddress IPAddress = packet.getAddress();
  108.         int port = packet.getPort();
  109.         DatagramPacket sendPacket = new DatagramPacket ("Hello", 5, IPAddress, port);
  110.         sock.send(sendPacket);
  111.     }
  112.     */
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement