快速业务通道

使用Java制作多点发送程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
个while循环,从标准输入上逐入。该程序将每一行的前512个字节包装到一标有地址的DatagramPacket中,并通过MulticastSocket发送该数据报。

其中程序MultiCastSender.java的源代码如下:

import java.net.*; // Import package names used.    import java.io.*;    class MultiCastSender {      private static final byte TTL = 1;      private static final int DATAGRAM_BYTES = 1024;      private int mulcastPort;      private InetAddress mulcastIP;      private BufferedReader input;      private MulticastSocket mulcastSocket;      public static void main(String[] args) {       // This must be the same port and IP address used by the receivers.       if (args.length != 2) {        System.out.print("Usage: MultiCastSender " + " \n\tcan be one of 224.x.x.x " + "- 239.x.x.x\n");        System.exit(1);      }      MultiCastSender send = new MultiCastSender(args);      System.exit(0);    }    public MultiCastSender(String[] args) {      DatagramPacket mulcastPacket; // UDP datagram.      String nextLine; // Line from STDIN.      byte[] mulcastBuffer; file:// Buffer for datagram.      byte[] lineData; // The data typed in.      int sendLength; file:// Length of line.      input = new BufferedReader(new InputStreamReader(System.in));      try {        // Create a multicasting socket.        mulcastIP = InetAddress.getByName(args[0]);        mulcastPort = Integer.parseInt(args[1]);        mulcastSocket = new MulticastSocket();        } catch(UnknownHostException excpt) {           System.err.println("Unknown address: " + excpt);           System.exit(1);           } catch(IOException excpt) {             System.err.println("Unable to obtain socket: " + excpt);             System.exit(1);              }       try {         file:// Loop and read lines from standard input.         while ((nextLine = input.readLine()) != null) {           mulcastBuffer = new byte[DATAGRAM_BYTES];          file:// If line is longer than your buffer, use the length of the buffer available.           if (nextLine.length() > mulcastBuffer.length) {            endLength = mulcastBuffer.length;            // Otherwise, use the line''s length.           }           else {            sendLength = nextLine.length();            }           // Convert the line of input to bytes.           lineData = nextLine.getBytes();           // Copy the data into the blank byte array           file://which you will use to create the DatagramPacket.           for (int i = 0; i < sendLength; i++) {             mulcastBuffer[i] = lineData[i];            }           mulcastPacket=new DatagramPacket (mulcastBuff

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号