Hi gys I hope you all fine
I just have a question that I would send two UDP packets from the client to the server and the server will reply back the both messages to the client , my problem is that my program only sends one packet to the server not the both and thereby the server reply by sending one packet although I send the two packets to server why ???
this is my CLIENT PROGRAM:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class NewClient {
public NewClient() {
}
static final int BUFFERSIZE = 255;
public static void main(String[] args) {
try
{
Scanner scan =new Scanner(System.in);
System.out.println("please input f1 massages");
String message1 = scan.nextLine();
System.out.println("please input f2 massages");
String message2 = scan.nextLine();
byte data1[] = message1.getBytes();
byte data2[] = message2.getBytes();
// create sendPacket
DatagramSocket socket=new DatagramSocket(2222);
DatagramPacket sendPacket1 = new DatagramPacket( data1,data1.length, InetAddress.getLocalHost(), 1111 );
socket.send( sendPacket1 ); // send packet1
System.out.println("your message1: "+message1+" has been sent to the server" );
DatagramPacket receivePacket1= new DatagramPacket(new byte[BUFFERSIZE], BUFFERSIZE);
socket.receive( receivePacket1 ); // wait for packet
String s1 = new String(receivePacket1.getData());
System.out.println("we have received a message it is "+s1+"");
System.out.println("I learn something " );/*this step has not been reached why!!!!**/
DatagramPacket sendPacket2 = new DatagramPacket( data2,data2.length, InetAddress.getLocalHost(), 1111 );
socket.send( sendPacket2 ); // send packet1
System.out.println("your message2: "+message2+" has been sent to the server" );
DatagramPacket receivePacket2 =new DatagramPacket(new byte[BUFFERSIZE], BUFFERSIZE);
socket.receive( receivePacket2 ); // wait for packet
System.out.println("we have received a message it is "+new String(receivePacket2.getData()) );
}
catch ( Exception ioException ) {
System.out.println( ioException.toString() + "\n" );
ioException.printStackTrace();
}
System.out.println("Bye bye");
}
}
the server program:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class NewSErver {
public NewSErver() {
}
static final int BUFFERSIZE = 255;
public static void main(String[] args) throws IOException{
byte data[] = new byte[ 100 ];
DatagramSocket socket = new DatagramSocket(1111);
DatagramPacket receivePacket1 = new DatagramPacket( new byte[BUFFERSIZE], BUFFERSIZE );
DatagramPacket receivePacket2 = new DatagramPacket( new byte[BUFFERSIZE], BUFFERSIZE );
try
{
String m = "ali";
byte[] ali = m.getBytes();
DatagramPacket sendPacket1 = new DatagramPacket(ali, ali.length, InetAddress.getLocalHost(), 2222 );
socket.send(sendPacket1);
socket.receive( receivePacket1 );
System.out.println("first message received is "+new String( receivePacket1.getData()));
socket.send( receivePacket1 );
socket.receive( receivePacket2 );
System.out.println("second message received is "+new String( receivePacket2.getData()));
socket.send( receivePacket2 );
}
catch( IOException ioException ) {
System.out.println( ioException.toString() + "\n" );
ioException.printStackTrace();
}
}
}