UDP通信服务端的建立
package Boradcost;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class SeverDemo {
public static void main(String[] args) throws Exception {
//建立服务端
//实现广播的接收
System.out.println("---服务端启动----");
//建立服务端接受人
DatagramSocket sd=new DatagramSocket(8888);
//建立服务端可接收的容量
byte[] buff=new byte[1024*64];
//建立服务端
DatagramPacket sdp=new DatagramPacket(buff,buff.length);
while (true) {
//服务端接收人接收信息
sd.receive(sdp);
//定义接收到的消息的长度
int len=sdp.getLength();
//将字节信息转换为字符串
String rs=new String(buff,0,len);
System.out.println("来自:"+sdp.getSocketAddress()+"的"+sdp.getPort()+"端口,发来的:"+rs);
}
//System.out.println(new String(buff,0,len));
}
}
UDP通信客户端的建立
package Boradcost;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class ClientDemo {
//建立客户端
//实现广播的发送
//多发多收
public static void main(String[] args) throws Exception {
System.out.println("----客户端启动-----");
//建立客户端用户
DatagramSocket f=new DatagramSocket();
Scanner in=new Scanner(System.in);
//客户端
/**
public DatagramPacket(byte buf[], int offset, int length,
InetAddress address, int port)
*/
while (true) {
System.out.println("请说:");
String rs=in.nextLine();
if("exit".equals(rs))
{
f.close();
}
byte[] buff=rs.getBytes();
//广播的不同点在于服务器的ip地址变为了局域网内所有服务器
//建立客户端发送容器
DatagramPacket dp=new DatagramPacket(buff,buff.length,
InetAddress.getByName("255.255.255.255"),8888);
f.send(dp);
}
}
}