?? basemessage.java
字號:
/**《JXTA網絡編程》例程
*"第五章 JXTA深入編程"
*
@作者 慈黎利
@單位 清華大學計算機系軟件所知識工程組
@版本 1.0
@聯系方式 cili@163.com
@描述 P2PSockst 負責在Peer 之間建立通訊連接
Copyright 2002
*/
package demo.p2psocket;
import java.io.*;
import java.net.*;
import net.jxta.endpoint.*;
import net.jxta.document.*;
import net.jxta.protocol.*;
import net.jxta.impl.endpoint.*;
// 源程序 BseMessage.java
public class BaseMessage {
public final static String CHAT="Chat"; // 消息的類型
public final static String OP="OP"; // 輸出管道的名字
public final static String IP="IP"; // 輸入管道的名字
public final static String FILE_MESSAGE_TYPE="FILE_MESSAGE_TYPE"; //文件消息的類型
public final static String FILE_LIST_REQUEST="FILE_LIST_REQUEST"; //共享文件名列表的請求
public final static String FILE_LIST="FILE_LIST"; //共享文件名列表
public final static String FILE_DOWNLOAD_REQUEST="FILE_DOWNLOAD_REQUEST"; //文件下載的請求
public final static String FILE_DOWNLOAD="FILE_DOWNLOAD"; //下載的文件
public final static String FILE_UPLOAD="FILE_UPLOAD"; //上傳文件
public final static String FILE_NAME="FILE_NAME"; //文件名
public final static String WEB_MESSAGE_TYPE="WEB_MESSAGE_TYPE"; //網站消息的類型
public final static String WEB_REQUEST="WEB_REQUEST"; //請求連接Web網站的消息
public final static String WEB_REQUEST_FIRST="WEB_REQUEST_FIRST"; //第一次請求連接Web網站的消息
public final static String WEB_CONTENT="WEB_CONTENT"; //請求瀏覽界面
public final static String WEB_URL="WEB_URL"; //請求瀏覽的頁面的地址
/**
* 產生聊天消息
* @param message 消息的內容
* @param outputPipe 輸出消息的管道的名字
* @param inputPipe 接受消息的輸入管道的名字
* @return 根據參數生成的消息實例
*/
public Message newChatMessage(String message,String outputPipe,String inputPipe) {
MessageImpl msg=new MessageImpl();
msg.setString(this.CHAT,message);
msg.setString(this.OP,outputPipe);
msg.setString(this.IP,inputPipe);
return msg;
}
public Message newFileMessage(InputStream is,String outputPipe,String inputPipe,
String fileType,String fileName) {
MessageImpl msg=new MessageImpl();
try {
if (is!=null) {
MimeMediaType mmt=new MimeMediaType("text/xml"); //文件的類型
MessageElementImpl mei=new MessageElementImpl(fileType,mmt,is);
msg.addElement(mei);
}
if(outputPipe!=null) msg.setString(this.OP,outputPipe);
if(inputPipe!=null) msg.setString(this.IP,inputPipe);
if (fileName!=null) msg.setString(this.FILE_NAME,fileName);
msg.setString(this.FILE_MESSAGE_TYPE,fileType);
}catch (IOException ioe) {
System.err.println("產生文件消息時出現I/O錯誤!");
System.exit(-1);
}
return msg;
}
public Message newWEBMessage(InputStream is,String outputPipe,String inputPipe,
String WEBType,String url) {
MessageImpl msg=new MessageImpl();
try {
if (is!=null) {
MimeMediaType mmt=new MimeMediaType("text/xml"); //文件的類型
MessageElementImpl mei=new MessageElementImpl(WEBType,mmt,is);
msg.addElement(mei);
}
if(outputPipe!=null) msg.setString(this.OP,outputPipe);
if(inputPipe!=null) msg.setString(this.IP,inputPipe);
if (url!=null) msg.setString(this.WEB_URL,url);
msg.setString(this.WEB_MESSAGE_TYPE,WEBType);
}catch (IOException ioe) {
System.err.println("產生文件消息時出現I/O錯誤!");
System.exit(-1);
}
return msg;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -