daily pastebin goal
72%
SHARE
TWEET

Untitled

a guest Feb 13th, 2018 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package dv201.labb2;
  2. import java.net.InetSocketAddress;
  3. import java.net.Socket;
  4. import java.net.SocketAddress;
  5. import java.io.*;
  6. import java.util.*;
  7.  
  8.  
  9.  
  10. public class TCPEchoClient {
  11.     public static int BUFSIZE = 1024;
  12.     public static final int MYPORT= 0;
  13.     public static final String MSG= "An Echo Message!";
  14.     public static int messages;
  15.  
  16.     public static void main(String[] args) throws IOException, InterruptedException {
  17.         BUFSIZE = Integer.parseInt(args[2]);   
  18.         messages = Integer.parseInt(args[3]);
  19.         //Argument handling
  20.         if (args.length != 4) {
  21.             System.err.printf("Arguments : Ip Port PackageSize Messages", args[1]);
  22.             System.exit(1);
  23.         }
  24.         //Package size handling
  25.         if (BUFSIZE > 64000 || BUFSIZE <= 0 ){
  26.             System.err.println("Invalid Buffersize");
  27.             System.exit(1);
  28.         }
  29.  
  30.         //IP adress error handling
  31.         //127.0.0.1
  32.         int dots = 0;
  33.         for (int i =  0; i < args[0].length(); i++){
  34.             if(args[0].charAt(i) == '.'){
  35.                 dots++;
  36.             }
  37.         }
  38.  
  39.         if (dots >3 || dots < 3){
  40.             System.err.println("Invalid IP adress");
  41.             System.exit(1);
  42.         }
  43.         String substring = "";
  44.         for(int i = 0; i< args[0].length(); i++){
  45.             if (args[0].charAt(i) == '.'){
  46.                 int number = Integer.parseInt(substring);
  47.                 substring = "";
  48.                 if (substring.length() > 3){
  49.                     System.err.println("Invalid IP adress");
  50.                     System.exit(1);
  51.                 }
  52.                 if (number <0 || number > 255){
  53.                     System.err.println("Invalid IP adress");
  54.                     System.exit(1);
  55.                 }
  56.  
  57.             }
  58.             else{
  59.                 substring = substring + args[0].charAt(i);
  60.             }
  61.         }
  62.  
  63.         try {
  64.             int i = 1;
  65.             while (i< messages+1){
  66.  
  67.                 /* Create socket */
  68.                 SocketAddress localBindPoint= new InetSocketAddress(MYPORT);
  69.                 Socket socket= new Socket();
  70.                 socket.bind(localBindPoint);
  71.                 DataOutputStream output;
  72.                 byte[] messageArr = MSG.getBytes();
  73.                 byte[] returned = new byte[BUFSIZE];
  74.                
  75.                 /* Create remote endpoint */
  76.                 SocketAddress remoteBindPoint=
  77.                         new InetSocketAddress(args[0],
  78.                                 Integer.valueOf(args[1]));
  79.                 socket.setSendBufferSize(messageArr.length);
  80.  
  81.  
  82.                 socket.connect(remoteBindPoint);
  83.                 output = new DataOutputStream(socket.getOutputStream());
  84.                 output.write(messageArr);
  85.                 output.flush();
  86.                 DataInputStream input;
  87.                 byte[] message = new byte[MSG.getBytes().length];
  88.                 input = new DataInputStream(socket.getInputStream());
  89.                 while (Arrays.equals(messageArr, message) == false){
  90.                     input.read(returned, 0, messageArr.length);
  91.                     if (returned.length < message.length){
  92.                        
  93.                     }
  94.                     //System.out.println("Returned");
  95.                     //System.out.println(new String(returned));
  96.                     //System.out.println("vs");
  97.                     //System.out.println(new String(messageArr));
  98.                     //System.out.println("----");
  99.                 }
  100.                 System.out.println("Echo recieved. "+i);
  101.                 i++;
  102.                 returned = new byte[messageArr.length];
  103.                 socket.close();
  104.  
  105.             }  
  106.  
  107.         }
  108.         catch(IOException e){
  109.             System.out.println(e.getStackTrace());
  110.         }
  111.  
  112.     }
  113. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top