这里是我的发件人程序Java的UDP接收机无法接收数据
import java.net.*;
class Send{
public static void main(String[] args) {
try{
//setup
DatagramSocket socket=new DatagramSocket();
byte[] buffer=new byte[100];
InetAddress address=InetAddress.getLocalHost();
System.out.println("Address:"+address);
DatagramPacket packet=new DatagramPacket(buffer,buffer.length,address,10000);
//get data
String data="Hello";
//send data
buffer=data.getBytes();
System.out.println("Sending data");
socket.send(packet);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
这里是接收器方案
import java.net.*;
class Listen{
public static void main(String[] args) {
try{
//set up
DatagramSocket socket=new DatagramSocket(10000);
byte[] buffer=new byte[100];
DatagramPacket packet=new DatagramPacket(buffer,buffer.length);
//recieve
System.out.println("Started Listening");
socket.receive(packet);
//print
String receivedData=new String(packet.getData());
System.out.println(receivedData);
System.out.println("Done!");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
我得到的是,监听器正在运行时,它似乎是在等待发件人发送数据(打印“开始聆听”)。发件人执行时,它似乎也正常运行(打印“发送数据”)。接收器也进一步执行(打印“完成!”),但数据包保持空白。
可能是什么问题?
虽然最好避免使用二进制/文本转换位平台的默认编码,太... –
@JonSkeet好点,我已经添加了一些解释。 –
'StandardCharsets.UTF_8'是你的朋友,国际海事组织:) –