第三种构造函数创建DatagramSocket对象,创建数据报套接字,并将其绑定到指定的本地地址上,这一种构造函数适用于有多块网卡和多个ip地址的情况。
在进行程序的接收时,必须指定一个端口号,不允许系统随机生成,此时可以使用第二种构造函数,就像你去发快递收货地址必须指定是一样的,在发送程序时通常使用第一种构造函数,不需要指定端口号,这就像发快递不管去哪一个快递公司都可以。
UDP协议网络通信客户端服务器程序
=================
了解了UDP协议的基本通讯原理之后,就是UDP程序的编写过程了,我们以一个不断发送天气情况的程序为例,在服务器端不断发送天气情况,客户端通过接收窗口进行接收,并且实时显示接收到的信息。
服务器端程序
package 天气播报;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Server extends Thread{
int port = 9898; //定义端口
InetAddress group; //定义广播组地址
MulticastSocket socket; //多播数据包套接字
public Server() {
// TODO Auto-generated constructor stub
//广播组地址范围:224.0.0.0~239.255.255.255
try {
group = InetAddress.getByName(“224.255.10.0”); //指定广播组的地址
socket = new MulticastSocket(port); //实例化多播数据包的套接字
socket.joinGroup(group); //加入广播组
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {