`
QING____
  • 浏览: 2253298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Socket编程:MulticastSocket-API简介

    博客分类:
  • JAVA
 
阅读更多

MulticastSocket为多播数据套接字,用于发送和接收IP多播包,此类继承自DatagramSocket即"多播"为UDP,但是它具有加入"多播组"的能力.

一.协议介绍:

有两种类型的"一对多"服务:广播(broadcast)和多播(multicast).对与广播,本地网络(仅限于本地网络)都会受到一个数据副本.对于多播,消息只会发送给一个多播地址,网络只会把数据包发给那些需要接受数据的多播地址的数据主机.只有UDP方式允许广播和多播.

 

广播UDP数据报文和单播相似,唯一的区别是其使用的是一个广播地址而不是常规的IP.IPV6中没有明确提供广播地址,然后有一个全节点/link-local范围的多播地址,FF02::1,发送给该地址的消息将会多播到一个连接上的所有节点.IPV4的广播地址为255.255.255.255.将消息发送到统一广播网络上的注意,广播消息不会被路由器转发.

本地广播的功能有限但是某些场景非常有用,它通常用于网络游戏中位于同一本地网络(局域网)的玩家之间进行交换状态信息."广播"的代码和单播一样,只是消息地址需要换成"广播"(setBroadcast(true)开启广播信息).

因为平台系统不同,可能会广播的支持有差异性,部分系统不支持用户设置广播信息.

 

多播和广播类似,区别于单播的是它不再指定一个ip地址而且多播组(一组地址),IPV4的多播地址区间为224.0.0.0到239.255.255.255,IPV6的多播地址以FF开头.

 

  • MulticastSocket()
  • MulticastSocket(int port)
  • MulticastSocket(SockeAddress address)
  • public void setTimeToLive(int ttl):设置socket发送的多播数据包最长的存活时间.ttl范围为0~255,表示报文被传输的最大路径.报文被路由器转发一次,将会导致报文的ttl递减,当ttl为0时,此报文将被丢弃(不再被转发).可以避免一个数据包在路由器之间无限制的传播.如果值为0则只能在本机传播,1则只能在本地子网中传播.
  • public void joinGroup(InetAddress address): 针对消息接收者加入多播组.address必须为"多播地址",否则将抛出异常.网络多播只将消息发送给一组指定的接受者,这组接受者称为"多播组",通过共享的多播组地址确定,接受者需要一种机制来通知网络它对发送到特定地址的消息感兴趣,以使网络将数据包转发给它.这种通知机制叫做加入组.
  • public void leaveGroup(InetAddress address): 针对消息接受者离开多播组.
  • public void setLoopbackMode(boolean):设置回传模式,如果为true,则socket将会忽略自身发送的组播数据包.如果为false,则可以接受到自己发送的数据包.
分享到:
评论

相关推荐

    课本源代码:郎波-Java语言程序设计四版-书例.zip

    10. **网络编程**:Java提供了丰富的API进行网络编程,如Socket和ServerSocket类用于TCP通信,DatagramSocket和MulticastSocket则用于UDP通信。 11. **Java标准库**:Java标准库(JDK)包含大量预先定义的类和方法...

    Socket编程QQ实现 JAVA

    Socket编程在Java中是网络通信的基础,主要用于实现客户端与服务器之间的连接。QQ作为一个即时通讯软件,其背后的原理也离不开Socket通信。在这个项目中,我们将学习如何利用Java的Socket API来模拟实现一个简单的QQ...

    Socket编程 目录连接.doc

    **1.1 Java Socket 网络编程简介** Java Socket 编程是Java平台提供的一种网络通信方式,主要涉及到Java标准库中的`java.net`包。该包包含了用于创建客户端与服务器之间连接的基本类,如`Socket`、`ServerSocket`等...

    疯狂java讲义 第17章

    Java提供了丰富的网络编程API,支持多种网络通信协议,如TCP和UDP。通过这些API,开发者可以轻松地构建复杂的网络应用,如多人聊天工具、FTP客户端等。此外,Java还支持通过代理服务器访问远程资源,使得在网络受限的环境...

    MulticastSocket实现多眯广播

    在Java的网络编程中,`MulticastSocket`类是一个非常重要的工具,它允许我们实现多点广播(Multicast)通信。多点广播是一种高效的网络通信方式,尤其在处理多个接收者时,它允许一个发送者将数据包一次性广播到一组...

    Java网络编程Java网络编程

    1. **Java Socket编程**: - **Socket**:Java中的Socket类代表了网络上的一个连接端点,它是TCP/IP协议的基础。Socket提供了低级的、面向连接的、双向的通信渠道。创建Socket时,需要指定服务器的IP地址和端口号。...

    基于JAVA的网络通讯系统设计与实现(论文+系统).zip

    2. **Socket编程**: - Socket是网络通信中的基本组件,它代表了两个应用程序间的通信链路。Java的Socket类和ServerSocket类分别用于客户端和服务端的通信建立。 3. **多线程**: - 网络服务器通常需要处理多个...

    JAVA网络开发项目

    - Socket编程:Java通过Socket类提供了一种基于TCP/IP协议的网络通信方式,允许两个应用程序之间建立全双工的连接。 - DatagramSocket与MulticastSocket:这两个类用于UDP(用户数据报协议)通信,适合对数据实时...

    java网络程序设计学习实例

    - **Socket编程**:Java中的Socket类和ServerSocket类是实现TCP/IP通信的基础。Socket用于客户端,ServerSocket用于服务端,两者结合可以建立可靠的双向连接。 - **URL和URLConnection**:用于处理HTTP协议,可以...

    Java-Network-Programming:《Java-Network-Programming》一书的注释

    - **Socket编程**:Java中的Socket类和ServerSocket类是网络编程的基础,它们提供了TCP连接的创建和管理。Socket用于建立客户端到服务器的连接,而ServerSocket则监听特定端口,等待客户端连接。 - **InetAddress...

    基于JAVA的网络通讯系统设计与实现(论文+系统)【毕业论文】.zip

    - Java提供了丰富的API来支持网络编程,如java.net包中的Socket、ServerSocket、DatagramSocket和MulticastSocket等类,它们分别用于TCP和UDP通信。 - TCP(传输控制协议)是面向连接的、可靠的协议,而UDP(用户...

    java网络编程精简-孙卫琴

    2. **Socket编程**:Java的`java.net.Socket`和`ServerSocket`类是进行TCP通信的核心。Socket编程涉及到客户端和服务端的建立连接、数据传输和断开连接等步骤。理解Socket的工作原理以及如何创建、管理和关闭Socket...

    java网络编程

    1. Socket编程:Java中的Socket类和ServerSocket类是进行TCP/IP通信的基础。Socket用于创建客户端连接,ServerSocket则用于监听和接受客户端连接。它们通过IP地址和端口号标识网络上的唯一通信实体。 2. 数据流处理...

    java网络编程实例4

    1. **Java网络编程基础**:Java提供了丰富的API来支持网络编程,如`java.net`包下的Socket、ServerSocket、URL等类。Socket用于创建客户端和服务器之间的连接,ServerSocket则在服务器端等待客户端的连接请求。理解...

    网络编程-狂神说Java学习笔记

    1. **Java网络编程基础**:Java通过Socket API提供了网络通信的能力。Socket代表了网络上的两个应用程序之间的连接,它允许数据在客户端和服务器之间流动。Socket类和ServerSocket类是Java网络编程的核心。 2. **...

    java聊天室

    - Java提供了丰富的API来处理网络通信,如`java.net.Socket`和`ServerSocket`类,用于创建TCP连接,以及`DatagramSocket`和`MulticastSocket`类,用于UDP通信。在这个聊天室项目中,我们主要会用到TCP协议,因为其...

    Java网络编程/Java网络编程实例

    1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过ServerSocket创建服务器端,Socket创建客户端,两者建立连接后可以进行双向数据传输。例如,你可以构建一个简单的聊天应用或文件...

    Java网络编程第三版.pdf

    1. **Java网络编程基础**:首先,书中会介绍Java中的Socket编程,包括TCP和UDP协议的基础知识,以及如何使用Java的Socket和ServerSocket类创建客户端和服务器端的连接。 2. **I/O与NIO**:Java的I/O流系统是网络...

Global site tag (gtag.js) - Google Analytics