unicastchanneltest.java
来自「JGRoups源码」· Java 代码 · 共 140 行
JAVA
140 行
// $Id: UnicastChannelTest.java,v 1.4 2004/07/05 14:15:11 belaban Exp $package org.jgroups.tests;import org.jgroups.JChannel;import org.jgroups.Message;import org.jgroups.stack.IpAddress;import java.io.BufferedReader;import java.io.InputStreamReader;/** * Interactive program to test a unicast channel * @author Bela Ban March 16 2003 */public class UnicastChannelTest { boolean server=false; String host="localhost"; int port=0; String props=null; JChannel ch; public void start(String[] args) throws Exception { for(int i=0; i < args.length; i++) { String tmp=args[i]; if("-server".equals(tmp)) { server=true; continue; } if("-props".equals(tmp)) { props=args[++i]; continue; } if("-host".equals(tmp)) { host=args[++i]; continue; } if("-port".equals(tmp)) { port=Integer.parseInt(args[++i]); continue; } help(); return; } if(server) { runServer(); } else { runClient(); } } void runClient() throws Exception { IpAddress addr; Message msg; Object obj; String line; BufferedReader reader; ch=new JChannel(props); ch.connect(null); // unicast channel addr=new IpAddress(host, port); reader= new BufferedReader(new InputStreamReader(System.in)); while(true) { System.out.print("> "); line=reader.readLine(); if(line.startsWith("quit") || line.startsWith("exit")) { ch.close(); return; } msg=new Message(addr, null, line); ch.send(msg); while((obj=ch.peek(1000)) != null) { obj=ch.receive(1000); if(obj == null) break; if(!(obj instanceof Message)) { System.out.println("<-- " + obj); } else { System.out.println("<-- " + ((Message)obj).getObject()); } } } } void runServer() throws Exception { Object obj; Message msg, rsp; ch=new JChannel(props); ch.connect(null); // this makes it a unicast channel System.out.println("server started at " + new java.util.Date() + ", listening on " + ch.getLocalAddress()); while(true) { obj=ch.receive(0); if(!(obj instanceof Message)) { System.out.println(obj); } else { msg=(Message)obj; System.out.println("-- " + msg.getObject()); rsp=new Message(msg.getSrc(), null, "ack for " + msg.getObject()); ch.send(rsp); } } } void help() { System.out.println("UnicastChannelTest [-help] [-server] [-props <props>]" + "[-host <host>] [-port <port>]"); } public static void main(String[] args) { try { new UnicastChannelTest().start(args); } catch(Exception ex) { ex.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?