class Ssend implements Runnable{
private DatagramSocket ds;
private int port;
public Ssend(DatagramSocket ds,int port) {
this.ds = ds;
this.port = port;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null ) {
if("886".equals(line))
break;
byte buf[] = line.getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("Lenovo_GHC"),port);
ds.send(dp);
}
} catch(Exception e) {
}
}
}
class Sreceive implements Runnable{
private DatagramSocket ds;
public Sreceive(DatagramSocket ds) {
this.ds = ds;
}
public void run() {
try {
while(true) {
byte buf[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(ip + ":" + data);
}
} catch(Exception e) {
}
}
}
public class UDP {
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入发送目标端口:");
int sport = Integer.parseInt(br.readLine());
System.out.print("请输入本程序端口:");
int rport = Integer.parseInt(br.readLine());
new Thread(new Ssend(new DatagramSocket(),sport)).start();
new Thread(new Sreceive(new DatagramSocket(rport))).start();
}
}