📄 xchatp.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(),
"Peer3",pps.getInputPipeName()));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -