?? 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(),
"Peer1",pps.getInputPipeName()));
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -