2014-11-03 18 views
0

我试图制作一个小的Java程序,它使用DatagramServerDatagramPacket从服务器向客户端写入文本消息。接收数据报数据包不显示

这是我写在服务器和客户端部分的代码。

serverm.java

byte b[] = new byte[1200]; 
    System.out.println("Enter some text"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String inputMessage = br.readLine(); 
    b = inputMessage.getBytes(); 

    DatagramSocket d = new DatagramSocket(6125); 
    DatagramPacket p = new DatagramPacket(b,i,InetAddress.getLocalHost(),5461); 
    d.send(p); 

clientm.java

byte b[] = new byte[1024]; 
    try 
    { 
     DatagramSocket d = new DatagramSocket(5461); 
     DatagramPacket p = new DatagramPacket(b,1024); 
     d.receive(p); 

     String outputMessage = new String(p.getData(),0,p.getLength()); 
     System.out.println(outputMessage); 
    } 

当运行java程序,它运行在服务器将消息发送到所述客户端 - 所接收的消息只打印空行。我怎样才能得到显示的字符串?

回答

1

我能够重现你的问题,当我设置在服务器中的“我”变量为0

确保值是您要发送的数据包的长度。

+0

谢谢。我忘了将字符串的长度更新为变量'i' – 2014-11-03 02:21:41