udp组播 java_基于UDP的组播网络程序

该博客介绍了如何使用Java编程实现基于UDP的组播网络程序。在服务器端,创建MulticastSocket,设置组播地址和端口,并不断发送数据报。在客户端,同样创建MulticastSocket并加入组播,接收并打印服务器发送的数据。
摘要由CSDN通过智能技术生成

在服务器端:

package Zubo;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class MultiServer extends Thread{

String s="通知:四至六周星期六上午网络编程上机";

int port=8001;//有时候有空指针的问题就是端口号和下面的地址不可以使用

InetAddress ia=null;

MulticastSocket ms=null;

public MultiServer()

{

try{

ms=new MulticastSocket(port);

ia=InetAddress.getByName("239.7.8.9");

ms.setTimeToLive(1);//设置组播套接字发送数据报范围为本地连接

ms.joinGroup(ia);//加入多组播

}catch(IOException e){

e.printStackTrace();

}

}

public void run()

{

while(true){

try {

DatagramPacket packet=null;

byte data[]=s.getBytes();

packet=new DatagramPacket(data,data.length,ia,port);

ms.send(packet);

sleep(2000);

} catch (Exception e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

new MultiServer().start();

}

}

在客户端:

package Zubo;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class MultiClient{

public void service(){

try{

MulticastSocket ms=new MulticastSocket(8001);

InetAddress ia=InetAddress.getByName("239.7.8.9");

ms.joinGroup(ia);

byte[] buffer=new byte[8192];

while(true){

DatagramPacket packet=new DatagramPacket(buffer,buffer.length);

ms.receive(packet);

String s=new String(packet.getData(),"UTF-8");

System.out.println(s);

}

}catch(IOException e){

e.printStackTrace();

}

}

public static void main(String[] args) {

new MultiClient().service();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值