?? xchatp.java
字號:
/**《JXTA網(wǎng)絡(luò)編程》例程
*"第五章 JXTA深入編程" 即時(shí)消息軟件XChatp 利用Propogate 進(jìn)行通訊
*
@作者 慈黎利
@單位 清華大學(xué)計(jì)算機(jī)系軟件所知識工程組
@版本 1.0
@聯(lián)系方式 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{
/**
* 實(shí)現(xiàn)InputPipe 的監(jiān)聽器
* @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);
}
/**
* 是否關(guān)閉連接
* @param s 傳輸?shù)淖址? * @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("從鍵盤讀取字符串時(shí)發(fā)生I/O錯(cuò)誤!");
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()));
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -