Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

configuration of message size (in bytes) and messages transfer rate

$
0
0
Hello please I need an hint/help on how to implement configuration of message size (in bytes) and messages transfer rate ( messages per second)in which I can specify these values as client command line parameters in the below UDP echoClient/Server program.




ClientSide

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketAddress;

public class UDPEchoClient {
    public static final int BUFSIZE= 1024;
    public static final int MYPORT= 0;
    public static final String MSG= "An Echo Message!";

    public static void main(String[] args) throws IOException {
	byte[] buf= new byte[BUFSIZE];
	if (args.length != 2) {
	    System.err.printf("usage: %s server_name port\n", args[1]);
	    System.exit(1);
	}
	
	/* Create socket */
	DatagramSocket socket= new DatagramSocket(null);
	
	/* Create local endpoint using bind() */
	SocketAddress localBindPoint= new InetSocketAddress(MYPORT);
	socket.bind(localBindPoint);
	
	/* Create remote endpoint */
	SocketAddress remoteBindPoint=
	    new InetSocketAddress(args[0],
				  Integer.valueOf(args[1]));
	
	/* Create datagram packet for sending message */
	DatagramPacket sendPacket=
	    new DatagramPacket(MSG.getBytes(),
			       MSG.length(),
			       remoteBindPoint);
	
	/* Create datagram packet for receiving echoed message */
	DatagramPacket receivePacket= new DatagramPacket(buf, buf.length);
	
	/* Send and receive message*/
	socket.send(sendPacket);
	socket.receive(receivePacket);
	
	/* Compare sent and received message */
	String receivedString=
	    new String(receivePacket.getData(),
		       receivePacket.getOffset(),
		       receivePacket.getLength());
	if (receivedString.compareTo(MSG) == 0)
	    System.out.printf("%d bytes sent and received\n", receivePacket.getLength());
	else
	    System.out.printf("Sent and received msg not equal!\n");
	socket.close();
    }
}

Server Side

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketAddress;

public class UDPEchoServer {
    public static final int BUFSIZE= 1024;
    public static final int MYPORT= 4950;

    public static void main(String[] args) throws IOException {
	byte[] buf= new byte[BUFSIZE];

	/* Create socket */
	DatagramSocket socket= new DatagramSocket(null);

	/* Create local bind point */
	SocketAddress localBindPoint= new InetSocketAddress(MYPORT);
	socket.bind(localBindPoint);
	while (true) {
		try
		{
	    /* Create datagram packet for receiving message */
	    DatagramPacket receivePacket= new DatagramPacket(buf, buf.length);

	    /* Receiving message */
	    socket.receive(receivePacket);

	    /* Create datagram packet for sending message */
	    DatagramPacket sendPacket=
		new DatagramPacket(receivePacket.getData(),
				   receivePacket.getLength(),
				   receivePacket.getAddress(),
				   receivePacket.getPort());

	    /* Send message*/
	    socket.send(sendPacket);
	    System.out.printf("UDP echo request from %s", receivePacket.getAddress().getHostAddress());
	    System.out.printf(" using port %d\n", receivePacket.getPort());
		}
		catch ( IOException ioException )
        {
          ioException.printStackTrace();
          
      
	}
	}
    } 
}


 

Viewing all articles
Browse latest Browse all 51036

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>