Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package dv201.labb2;
- import java.net.InetSocketAddress;
- import java.net.Socket;
- import java.net.SocketAddress;
- import java.io.*;
- import java.util.*;
- public class TCPEchoClient {
- public static int BUFSIZE = 1024;
- public static final int MYPORT= 0;
- public static final String MSG= "An Echo Message!";
- public static int messages;
- public static void main(String[] args) throws IOException, InterruptedException {
- BUFSIZE = Integer.parseInt(args[2]);
- messages = Integer.parseInt(args[3]);
- //Argument handling
- if (args.length != 4) {
- System.err.printf("Arguments : Ip Port PackageSize Messages", args[1]);
- System.exit(1);
- }
- //Package size handling
- if (BUFSIZE > 64000 || BUFSIZE <= 0 ){
- System.err.println("Invalid Buffersize");
- System.exit(1);
- }
- //IP adress error handling
- //127.0.0.1
- int dots = 0;
- for (int i = 0; i < args[0].length(); i++){
- if(args[0].charAt(i) == '.'){
- dots++;
- }
- }
- if (dots >3 || dots < 3){
- System.err.println("Invalid IP adress");
- System.exit(1);
- }
- String substring = "";
- for(int i = 0; i< args[0].length(); i++){
- if (args[0].charAt(i) == '.'){
- int number = Integer.parseInt(substring);
- substring = "";
- if (substring.length() > 3){
- System.err.println("Invalid IP adress");
- System.exit(1);
- }
- if (number <0 || number > 255){
- System.err.println("Invalid IP adress");
- System.exit(1);
- }
- }
- else{
- substring = substring + args[0].charAt(i);
- }
- }
- try {
- int i = 1;
- while (i< messages+1){
- /* Create socket */
- SocketAddress localBindPoint= new InetSocketAddress(MYPORT);
- Socket socket= new Socket();
- socket.bind(localBindPoint);
- DataOutputStream output;
- byte[] messageArr = MSG.getBytes();
- byte[] returned = new byte[BUFSIZE];
- /* Create remote endpoint */
- SocketAddress remoteBindPoint=
- new InetSocketAddress(args[0],
- Integer.valueOf(args[1]));
- socket.setSendBufferSize(messageArr.length);
- socket.connect(remoteBindPoint);
- output = new DataOutputStream(socket.getOutputStream());
- output.write(messageArr);
- output.flush();
- DataInputStream input;
- byte[] message = new byte[MSG.getBytes().length];
- input = new DataInputStream(socket.getInputStream());
- while (Arrays.equals(messageArr, message) == false){
- input.read(returned, 0, messageArr.length);
- if (returned.length < message.length){
- }
- //System.out.println("Returned");
- //System.out.println(new String(returned));
- //System.out.println("vs");
- //System.out.println(new String(messageArr));
- //System.out.println("----");
- }
- System.out.println("Echo recieved. "+i);
- i++;
- returned = new byte[messageArr.length];
- socket.close();
- }
- }
- catch(IOException e){
- System.out.println(e.getStackTrace());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement