我有一个程序将UDP DatagramPackage
发送到网络。但是接收器计算机没有得到包裹。请注意,代码在两台计算机上。发件人计算机的IP地址为10.0.0.3,接收者计算机的IP地址为10.0.0.6。
这是在两台计算机上运行的代码。(代码用java 9编写)
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class Main
{
//field
private static final int PORT = 60003;
private static final String IP = "10.0.0.3";// or 10.0.0.6 for the receiver computer
//methods
public static void main(String[] args)
{
snd();
rcv();
}//main method
public static void snd()
{
(new Thread() {
@Override
public void run()
{
try(DatagramSocket s = new DatagramSocket())
{
while(true)
{
String st = new Scanner(System.in).next();
DatagramPacket packet = new DatagramPacket(st.getBytes(),st.getBytes().length ,InetAddress.getByName(IP), PORT);
s.send(packet);
Thread.yield();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}).start();
}//send method
public static void rcv()
{
(new Thread() {
@Override
public void run()
{
try(DatagramSocket s = new DatagramSocket(PORT))
{
while(true)
{
byte[] b = new byte[1024];
DatagramPacket packet = new DatagramPacket(b, b.length);
s.receive(packet);
for(int i = 0 ; i<packet.getLength() ; i++)
{
System.out.print((char) b[i]);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}).start();
}//receive method
}//class Main
我找不到问题,因为10.0.0.3收到了发件人10.0.0.3发送的代码,但没有收到10.0.0.6。如果有人可以提供帮助,我真的很感激