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

📄 xchatp.java

📁 该代码是《JXTA-java P2P网络编程技术》一书的源代码
💻 JAVA
字号:
/**《JXTA网络编程》例程
*"第五章  JXTA深入编程" 即时消息软件XChatp 利用Propogate 进行通讯   
*
@作者 慈黎利
@单位 清华大学计算机系软件所知识工程组
@版本 1.0
@联系方式 cili@163.com
@描述 利用P2PSocket 在Peer之间传输消息
Copyright 2002
*/

import java.io.*;

import net.jxta.pipe.*; 
import net.jxta.impl.endpoint.*;

import demo.p2psocket.*;

//源程序 XChat.java

public class XChatp implements PipeMsgListener{
	
	/**
	* 实现InputPipe 的监听器
	* @param event 获得消息事件
	*/
	public void pipeMsgEvent ( PipeMsgEvent event ){
		System.out.println("come a message!");
		MessageImpl mi=(MessageImpl) event.getMessage();
		String message=mi.getString(BaseMessage.CHAT);
		if (this.closeConnect(message)) return;
		String temp=mi.getString(BaseMessage.OP);
		toScreen(temp+":"+message);	
	}
	
	/**
	* 显示字符串
	* @param s 被显示的字符串
	*/
	public void toScreen (String s) {
		System.out.println(s);
	}
	
	/**
	* 是否关闭连接
	* @param s 传输的字符串
	* @return 如果s="#bye#" ,就返回rtue
	*/
	public boolean closeConnect(String s) {
		if (s.equals("#bye#")) return true;
		return false;
	}
	
	/**
	* 从键盘获得输入的字符串
	* @return  返回键盘输入的字符串
	*/
	public String getStrFromKey() {
		try {
			BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
			return br.readLine();
		}catch (IOException ioe) {
			System.err.println("从键盘读取字符串时发生I/O错误!");
			System.exit(-1);
		}
		return null;
	}
	
	public static void main(String args[]) {
		XChatp xc=new XChatp();
		P2PSocket pps=new P2PSocket();
		pps.setInputPipeName("PP");
		pps.setInListener(xc);
		pps.bind();	
		pps.setOutListener(pps);
		pps.connect("PP");
		while(true)		
		pps.send(new BaseMessage().newChatMessage(xc.getStrFromKey(),
				"Peer2",pps.getInputPipeName()));	
	}
}

⌨️ 快捷键说明

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