This is a UDP network program. The following presents a multicast datagram program, which is actually a new technology.
package com.han; import java.net.*; /** * This is a UDP network program. * The following presents a multicast datagram program, * which is actually a new technology. * * @author HAN * */ public class Weather extends Thread{ String weather ="节目预告: 八点有大型晚会,请收听"; int port =9898; InetAddress iaddress;//没法初始化,这里只能声明。因为初始化new对象时要抛出异常所以在成员变量区域是语法通不过的。 MulticastSocket socket; //在构造方法中初始化成员变量 Weather(){ try { //A multicast group is specified by a class D IP address //and by a standard UDP port number. //Class D IP addresses are in the range 224.0.0.0 to 239.255.255.255, inclusive. //The address 224.0.0.0 is reserved and should not be used. iaddress=InetAddress.getByName("233.0.0.0"); socket=new MulticastSocket(port); socket.setTimeToLive(1); socket.joinGroup(iaddress); }catch(Exception e){ e.printStackTrace(); } } @Override //最简单的方法也就是建立一个线程来运行 public void run(){ while(true){ byte[] data=weather.getBytes(); DatagramPacket packet=new DatagramPacket(data,data.length,iaddress,port); // System.out.println(weather); System.out.println(new String(data)); try { socket.send(packet); sleep(3000);//线程休眠3秒 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args){ Weather w=new Weather(); w.start(); } } This is the receive part.
package com.han; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.*; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * This is the receive part. * @author HAN * */ public class Receive extends JFrame implements Runnable, ActionListener{ private static final long serialVersionUID = 3362377947503474102L; int port=9898; InetAddress group; MulticastSocket socket; //socket sends and receives the packet. DatagramPacket packet; JButton ince=new JButton("开始接收"); JButton stop=new JButton("停止接收"); JTextArea inceAr=new JTextArea(10,20); JTextArea inced=new JTextArea(10,20); Thread thread; boolean b = false; byte[] buf=new byte[30];// If the message is longer than the packet's length, the message is truncated. //在构造方法中设置具体参数特性,也就是初始化 public Receive(){ super("广播数据报"); thread=new Thread(this); ince.addActionListener(this); stop.addActionListener(this); inceAr.setForeground(Color.blue); JPanel north=new JPanel(); north.add(ince); north.add(stop); add(north,BorderLayout.NORTH); JPanel center=new JPanel(); JScrollPane sp=new JScrollPane(inceAr); JScrollPane sp2=new JScrollPane(inced); inceAr.setLineWrap(true); inceAr.setEditable(false); inced.setLineWrap(true); inced.setEditable(false); center.add(sp); center.add(sp2); add(center,BorderLayout.CENTER); pack(); //JFrame inherited from Window validate(); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); try { socket=new MulticastSocket(port); //A multicast group is specified by a class D IP address //and by a standard UDP port number. //Class D IP addresses are in the range 224.0.0.0 to 239.255.255.255, inclusive. //The address 224.0.0.0 is reserved and should not be used. group=InetAddress.getByName("233.0.0.0"); socket.joinGroup(group); packet=new DatagramPacket(buf,buf.length); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run(){ while(true){ try { socket.receive(packet); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // String message=new String(buf); String message=new String(packet.getData(),0,packet.getLength());//very important !! // System.out.println(message.length()); inceAr.setText("正在接受的内容: \n"+message); inced.append(message+"\n"); if(b==true){ break; } } } public void actionPerformed(ActionEvent e){ Object object=e.getSource(); if(object==ince){ //If this thread is already on the state "run", do nothing. if(!thread.isAlive()){ thread=new Thread(this); thread.start(); ince.setBackground(Color.red); stop.setBackground(Color.yellow); b=false; } } if(object==stop){ ince.setBackground(Color.yellow); stop.setBackground(Color.red); b=true; } } public static void main(String[] args){ @SuppressWarnings("unused") Receive rec=new Receive(); // rec.setSize(460, 200);//提供了额外设置窗体大小的方式 } } 这上面的程序运用了很多JAVA的核心技术以及很多需要注意的地方,可以堪称一个JAVA的精髓例子,记录下来以便以后查阅。
您还没有登录,请您登录后再发表评论
Java UDP(用户数据报协议)是网络编程中的一个重要部分,尤其在需要低延迟、无连接通信的场景下。本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本...
总结来说,Java利用UDP协议实现多播广播组通信涉及的主要步骤包括创建MulticastSocket、加入多播组、发送和接收数据,以及设计GUI以提供用户友好的交互。这种通信方式在多媒体流、在线会议等需要实时性且无需保证...
在MATLAB中实现UDP广播,我们需要使用MATLAB的`udp`对象来创建一个UDP套接字,并设置相应的属性。例如,`UDP1.m`可能包含了以下代码: ```matlab % 创建UDP套接字对象 s = udp('255.255.255.255', 12345, 'Local...
而广播通信则允许一个发送者向网络中的所有设备发送数据,无需预先知道接收者的IP地址。 首先,我们要理解UDP广播的基本概念。在局域网内,当一个设备想要向所有其他设备发送消息时,它会将数据包的目标IP地址设置...
本示例关注的是如何利用Netty实现一个基于UDP(User Datagram Protocol)的数据接收服务,这在需要进行快速、无连接的数据传输场景中非常常见。以下是对这个主题的详细讲解: 首先,我们需要理解UDP的基础知识。UDP...
在这个“JAVA基于UDP通信的一对一聊天”示例中,我们将探讨如何利用Java的Socket编程来实现UDP通信的基本原理和流程。 首先,我们需要了解UDP通信的基础。UDP协议不提供连接建立、数据顺序保证或错误校验,因此它的...
在本文中,我们将深入探讨如何使用Java基于UDP协议实现图片群发功能。UDP(用户数据报协议)是一种无连接的网络协议,它在通信过程中不建立连接,因此具有较高的效率,适合实时性要求高的应用场景。然而,由于其不...
2. **DatagramPacket**:`java.net.DatagramPacket`类表示一个UDP数据报,用于封装要发送的数据以及目标或源的IP地址和端口号。在发送时,我们将数据和目标信息包装进`DatagramPacket`,然后通过`DatagramSocket`...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接、不可靠的传输协议。UDP的特点在于其速度较快,因为不需要建立和维护连接,适合实时性...
在实现基于UDP的PING时,我们需要创建一个UDP套接字来发送和接收数据包。 在Java中,我们可以使用java.net包中的DatagramSocket类来创建和管理UDP套接字。首先,创建一个DatagramSocket实例,然后准备一个包含"PING...
基于UDP的计算机远程屏幕广播技术,充分利用了UDP协议的高效率特性以及IP广播地址的网络通信优势,实现了屏幕数据的实时、高效传输。在教育、企业培训、远程会议等领域,这一技术的应用极大地提高了信息共享的实时性...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...
由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 二、Java中UDP的实现 在Java中,UDP的实现主要通过DatagramSocket和DatagramPacket两个类来实现。 1. ...
IP多点传送(Multicast Delivery)是在点对点通信和广播通信之外的一种新型通信模式,它允许信息在一个特定的组内广播,该组内的所有成员都能接收到信息。这种传输方式非常适合于需要高带宽的应用场景,如视频流媒体...
Java基于UDP的聊天程序是一种利用无连接的用户数据报协议(User Datagram Protocol)进行网络通信的应用。UDP在传输层提供了一种简单而高效的方式,它不保证数据的顺序、完整性和可靠性,但因其轻量级的特性,在实时...
广东工业大学计算机网络课程设计的编程实现基于UDP的ping(java)
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接的传输层协议。UDP在TCP/IP协议族中扮演着重要角色,它提供了不可靠、无序的数据传输...
java基于udp的聊天服务端,适于初学者
Java+UDP+数据解码+UDP数据发送+源代码,实现实时接收数据并显示在前端界面,读取本地文件,对文件进行操作。适合初学者对Java的UDP通信还不是特别的熟悉的Java开发者,详细的呈现出对数据处理和怎么样把后端数据...
相关推荐
Java UDP(用户数据报协议)是网络编程中的一个重要部分,尤其在需要低延迟、无连接通信的场景下。本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本...
总结来说,Java利用UDP协议实现多播广播组通信涉及的主要步骤包括创建MulticastSocket、加入多播组、发送和接收数据,以及设计GUI以提供用户友好的交互。这种通信方式在多媒体流、在线会议等需要实时性且无需保证...
在MATLAB中实现UDP广播,我们需要使用MATLAB的`udp`对象来创建一个UDP套接字,并设置相应的属性。例如,`UDP1.m`可能包含了以下代码: ```matlab % 创建UDP套接字对象 s = udp('255.255.255.255', 12345, 'Local...
而广播通信则允许一个发送者向网络中的所有设备发送数据,无需预先知道接收者的IP地址。 首先,我们要理解UDP广播的基本概念。在局域网内,当一个设备想要向所有其他设备发送消息时,它会将数据包的目标IP地址设置...
本示例关注的是如何利用Netty实现一个基于UDP(User Datagram Protocol)的数据接收服务,这在需要进行快速、无连接的数据传输场景中非常常见。以下是对这个主题的详细讲解: 首先,我们需要理解UDP的基础知识。UDP...
在这个“JAVA基于UDP通信的一对一聊天”示例中,我们将探讨如何利用Java的Socket编程来实现UDP通信的基本原理和流程。 首先,我们需要了解UDP通信的基础。UDP协议不提供连接建立、数据顺序保证或错误校验,因此它的...
在本文中,我们将深入探讨如何使用Java基于UDP协议实现图片群发功能。UDP(用户数据报协议)是一种无连接的网络协议,它在通信过程中不建立连接,因此具有较高的效率,适合实时性要求高的应用场景。然而,由于其不...
2. **DatagramPacket**:`java.net.DatagramPacket`类表示一个UDP数据报,用于封装要发送的数据以及目标或源的IP地址和端口号。在发送时,我们将数据和目标信息包装进`DatagramPacket`,然后通过`DatagramSocket`...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接、不可靠的传输协议。UDP的特点在于其速度较快,因为不需要建立和维护连接,适合实时性...
在实现基于UDP的PING时,我们需要创建一个UDP套接字来发送和接收数据包。 在Java中,我们可以使用java.net包中的DatagramSocket类来创建和管理UDP套接字。首先,创建一个DatagramSocket实例,然后准备一个包含"PING...
基于UDP的计算机远程屏幕广播技术,充分利用了UDP协议的高效率特性以及IP广播地址的网络通信优势,实现了屏幕数据的实时、高效传输。在教育、企业培训、远程会议等领域,这一技术的应用极大地提高了信息共享的实时性...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...
由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 二、Java中UDP的实现 在Java中,UDP的实现主要通过DatagramSocket和DatagramPacket两个类来实现。 1. ...
IP多点传送(Multicast Delivery)是在点对点通信和广播通信之外的一种新型通信模式,它允许信息在一个特定的组内广播,该组内的所有成员都能接收到信息。这种传输方式非常适合于需要高带宽的应用场景,如视频流媒体...
Java基于UDP的聊天程序是一种利用无连接的用户数据报协议(User Datagram Protocol)进行网络通信的应用。UDP在传输层提供了一种简单而高效的方式,它不保证数据的顺序、完整性和可靠性,但因其轻量级的特性,在实时...
广东工业大学计算机网络课程设计的编程实现基于UDP的ping(java)
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接的传输层协议。UDP在TCP/IP协议族中扮演着重要角色,它提供了不可靠、无序的数据传输...
java基于udp的聊天服务端,适于初学者
Java+UDP+数据解码+UDP数据发送+源代码,实现实时接收数据并显示在前端界面,读取本地文件,对文件进行操作。适合初学者对Java的UDP通信还不是特别的熟悉的Java开发者,详细的呈现出对数据处理和怎么样把后端数据...