У меня есть программа, которая отправляет 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. я действительно ценю, если кто-то может помочь