我试图制作一个小型java程序,它使用DatagramServer
和DatagramPacket
从服务器向客户端写入一条文本消息。
这是我在服务器和客户端部分编写的代码。
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程序时,它在服务器向客户端发送消息时运行——收到的消息只打印空行。我怎样才能显示要显示的字符串?
最佳答案
当我将服务器中的“i”变量设置为 0 时,我能够重现您的问题。
确保该值是您要发送的数据包的长度。
关于java - 接收数据报包不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706654/