⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicastconnection.java

📁 java learn PPT java learn PPT java learn PPT java learn PPT
💻 JAVA
字号:
     import java.io.*;
     import java.net.*;

     public class MulticastConnection
     {
          public static final int DEFAULT_PORT = 1234;

          // 连接、发送和接收消息用的多点传送      
          protected MulticastSocket mcSocket; 

          // 属于多点传送群中的一个IP地址
          protected InetAddress     groupAddress; 

          // 连接用的端口号
          protected int             port;

          // 发送和接收消息的IP 报
          protected DatagramPacket  dataPacket;

          // 接收和发送数据报用的 byte数组
          protected byte[]          data;

          // 一个数据报可以容纳的字节的最大数目
          protected final int PACKET_SIZE = 1024;

          // 用给定的地址和端口创建一个新的MulticastConnection对象
          public MulticastConnection(String address, int portNo) throws Exception
          {
               // 将给定的地址解析为有效的IP地址
               groupAddress = InetAddress.getByName(address);

               port = portNo;

               // 取保端口号有效
               mcSocket  = (port > 0) ? new MulticastSocket(port) : new MulticastSocket(DEFAULT_PORT);

               // 将socket连接到IP地址群
               mcSocket.joinGroup(groupAddress);

               data = null;
          }

          // 试图从群中断开    
          public void disconnect()
          {
               if(mcSocket == null) return;

               try
               {
                    mcSocket.leaveGroup(groupAddress);
               }
               catch(IOException e) 
               {
                    // 在这里处理错误信息...
               }
          }

          // 尝试从群中接收一个数据报
          public String recv()
          {
               data = new byte[PACKET_SIZE];
               dataPacket = new DatagramPacket(data,data.length);  

               try
               {
                    mcSocket.receive(dataPacket);
               }
               catch(IOException e)
               {
                    return "";
               }

               // 将数据报中的原始字节转化为一个有效的String对象
               return new String(dataPacket.getData()).trim();
          }
 
          // 尝试将指定的String对象作为一个IP数据报发送出去
          public boolean send(String msg)
          {
               dataPacket = new DatagramPacket(
                    msg.getBytes(), msg.length(), groupAddress, port);    

               try
               {
                    mcSocket.send(dataPacket); 
               }
               catch(IOException e)
               {
                    return false;
               }

               return true;        
          }
         
     }    // MulticastConnection

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -