📄 mcasttest.java
字号:
// $Id: McastTest.java,v 1.5 2005/05/30 16:15:11 belaban Exp $package org.jgroups.tests;import java.io.DataInputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.util.StringTokenizer;/** @author Bela Ban @version $Revision: 1.5 $ */public class McastTest { public static void main(String args[]) { DatagramSocket sock; DatagramPacket packet; byte[] buf=new byte[0]; boolean receiver=true; String val; InetAddress addr=null; int port=0; for(int i=0; i < args.length; i++) { val=args[i]; if("-help".equals(val)) { help(); return; } if("-sender".equals(val)) { receiver=false; continue; } if("-receiver".equals(val)) { receiver=true; try { addr=InetAddress.getByName(args[++i]); port=Integer.parseInt(args[++i]); } catch(Exception e) { System.err.println(e); help(); return; } continue; } help(); } try { if(receiver) { sock=new DatagramSocket(port, addr); System.out.println("Socket=" + sock.getLocalAddress() + ':' + sock.getLocalPort()); System.out.println("starting as receiver"); receiverLoop(sock); } else { sock=new DatagramSocket(); System.out.println("Socket=" + sock.getLocalAddress() + ':' + sock.getLocalPort()); System.out.println("starting as sender"); senderLoop(sock); } } catch(Exception e) { System.err.println(e); } } static void receiverLoop(DatagramSocket sock) { DatagramPacket packet; byte[] buf; while(true) { buf=new byte[256]; packet=new DatagramPacket(buf, buf.length); try { sock.receive(packet); System.out.println("Receive packet from " + packet.getAddress().getHostAddress() + ':' + packet.getPort() + ": " + new String(packet.getData())); } catch(Exception e) { System.err.println(e); break; } } } static void senderLoop(DatagramSocket sock) { DataInputStream in; String line; DatagramPacket packet; InetAddress dst; int dst_port; StringTokenizer tok; StringBuffer sb; String tmp, buf; byte[] bbuf; in=new DataInputStream(System.in); while(true) { try { System.out.print("> "); line=in.readLine(); if(line.startsWith("quit") || line.startsWith("exit")) break; tok=new StringTokenizer(line); try { dst=InetAddress.getByName(tok.nextToken()); dst_port=Integer.parseInt(tok.nextToken()); } catch(Exception e) { System.err.println(e); continue; } sb=new StringBuffer(); while(tok.hasMoreTokens()) { tmp=tok.nextToken(); sb.append(tmp + ' '); } buf=sb.toString(); System.out.println("sending " + buf); bbuf=buf.getBytes(); packet=new DatagramPacket(bbuf, bbuf.length, dst, dst_port); sock.send(packet); } catch(Exception e) { System.err.println(e); break; } } } static void help() { System.out.println("McastTest [-help] [-sender | -receiver <local addr> <local port>]"); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -