这个可以在局域网内、沟通
package mymenu;
import java.net.*;
import java.util.*;
public class PracticeUsed {
public static void main(String[] args) throws Exception {
DatagramSocket ds = new DatagramSocket();
DatagramSocket dd = new DatagramSocket(10002);
new Thread(new MySend(ds)).start();
new Thread(new MyRece(dd)).start();
}
}
class MySend implements Runnable
{
private DatagramSocket ds;
public MySend(DatagramSocket ds)
{
this.ds = ds;
}
public void run()
{
try
{
while(true)
{
Scanner in = new Scanner(System.in);
String text = in.nextLine();
byte[] buf = text.getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("199.234.8.53"),10002);
// 注意: 每个号段当中最后的.255 、代表是局域网的广播频道
ds.send(dp);
}
}
catch(Exception e )
{
throw new RuntimeException("发送端挂了");
}
}
}
class MyRece implements Runnable
{
private DatagramSocket ds;
public MyRece(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);
System.out.println("");
}
}
catch(Exception e )
{
throw new RuntimeException("接收端挂了");
}
}
}