「java组播接收」java接收udp组播

博主:adminadmin 2023-01-28 05:09:10 338

本篇文章给大家谈谈java组播接收,以及java接收udp组播对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java的socket收发自定义对象

byte可以通过ByteArrayInputStream轻松的转成流对象,然后再转成Object流就可以收发对象了。

大小端底层应该已经处理了,不需要我们关心

印象中默认好像没有机制,需要你自己约定结束标志。

java 怎么用UDP实时接收数据?

我自己写的代码:

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

public class UdpRecvDemo

{

    public static void main(String[] args) throws IOException

    {

        Recv();

    }

    

    public static void Recv() throws IOException

    {

        System.out.println("接受开始......");

        DatagramSocket ds = new DatagramSocket(3388);

        while(true)

        {

            byte[]buf = new byte[1024];

            DatagramPacket dp = new DatagramPacket(buf,buf.length);

            ds.receive(dp);

            System.out.println(ds);

            String ip = dp.getAddress().getHostAddress();

            int port = dp.getPort();

            String text = new String(dp.getData(),0,dp.getLength());

            if(text.equals("exit"))

                {

                    System.out.println(ip+"退出会话......");

                    break;

                }

            System.out.println(ip+":"+port+"===me "+text);

        }

        ds.close();

    }

}

组播java编程

组播是需要路由器支持才可行的技术。我想广播可以解决你的需求。

40、在Java中,如何实现组播通信?

编辑一个java组播应用程序的过程如下

1. 创建一个用于发送和接收的MulticastSocket组播套接字对象

2. 创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

3. 使用组播套接字joinGroup(),将其加入到一个组播

4. 使用组播套接字的send()方法,将组播数据包对象放入其中,发送组播数据包.

或者

使用组播套接字的receive()方法,将组播数据包对象放入其中,接收组播数据包

5. 解码组播数据包提取信息,并依据得到的信息作出响应String s = new String(dp.getData(), 0, dp.getLength());

6. 重复过程4和5,即在while循环中实现。

7. 使用组播套接字的leaveGroup()方法,离开组播组;关闭组播套接字

接收组播数据包程序:

Java代码

public class MulticastReceived {

public static void main(String[] args) throws Exception {

InetAddress group = InetAddress.getByName("224.0.0.4"); // 组播地址

int port = 4006; // 端口

MulticastSocket msr = null;

try {

msr = new MulticastSocket(port); // 1.创建一个用于发送和接收的MulticastSocket组播套接字对象

msr.joinGroup(group); // 3.使用组播套接字joinGroup(),将其加入到一个组播

byte[] buffer = new byte[8192];

System.out.println("接收数据包启动!(启动时间:)" + new java.util.Date() + ")");

while (true) {

DatagramPacket dp = new DatagramPacket(buffer, buffer.length); // 2.创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

msr.receive(dp); // 4.使用组播套接字的receive()方法,将组播数据包对象放入其中,接收组播数据包

String s = new String(dp.getData(), 0, dp.getLength()); // 5.解码组播数据包提取信息,并依据得到的信息作出响应

System.out.println(s);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (msr != null) {

try {

msr.leaveGroup(group); // 7.使用组播套接字的leaveGroup()方法,离开组播组

msr.close(); // 关闭组播套接字

} catch (IOException e) {

}

}

}

}

}

发送组播数据包程序:

Java代码

public class MulticastSender {

public static void main(String[] args) throws Exception {

InetAddress group = InetAddress.getByName("224.0.0.1"); // 组播地址

int port = 4000; // 端口

MulticastSocket mss = null;

try {

mss = new MulticastSocket(port); // 1.创建一个用于发送和接收的MulticastSocket组播套接字对象

mss.joinGroup(group); // 3.使用组播套接字joinGroup(),将其加入到一个组播

byte[] buffer = new byte[8192];

System.out.println("接收数据包启动!(启动时间:)" + new java.util.Date() + ")");

while (true) {

String message = "Hello" + new java.util.Date();

byte[] buffer2 = message.getBytes(); // 2.创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

DatagramPacket dp = new DatagramPacket(buffer, buffer.length, group, port);

// msr.receive(dp); //接收组播数据包

mss.send(dp); // 4.使用组播套接字的send()方法,将组播数据包对象放入其中,发送组播数据包

// String s = new String(dp.getData(), 0, dp.getLength()); //5.解码组播数据包提取信息,并依据得到的信息作出响应

System.out.println("发送数据包给" + group + ":" + port);

Thread.sleep(1000);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (mss != null) {

try {

mss.leaveGroup(group); // 7.使用组播套接字的leaveGroup()方法,离开组播组

mss.close(); // 关闭组播套接字

} catch (IOException e) {

}

}

}

}

}

java的MulticastSocket 多播只能用于局域网吗?

恩 组播应该是不行 而且组播需要路由协议的支持

qq用的是udp 他是利用中心服务器进行打洞后建立起的p2p的udp链接

我猜想应该是登陆的时候链接一下中心服务器 打洞成功后 以后你和好友间的聊天全是你们点对点的udp 就和服务器关系不大了

如果编聊天软件应该结合tcp和udp

Java如何实现网络组播的应用软件

(1)、创建一个组播组。

(2)、加入组播组。

(3)、向组播组发送数据。

(4)、从组播组接收数据并显示。

(5)、离开组播组。

程序具体实现是创建一个框架类和一个包含main()方法的应用程序类,类名分别为WBFrame和WBUser其Java文件名是WBFrame.java和WBUuser.java。其中WBFrame.java主要代码如下:

void jButton2_actionPerformed(ActionEvent e)

java组播接收的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java接收udp组播、java组播接收的信息别忘了在本站进行查找喔。