【Java开源代码栏目提醒】:网学会员,鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“XWebServer.java”一文,供大家参考学习!
import java.io.*;
import java.net.*;
import net.jxta.pipe.*;
import net.jxta.impl.endpoint.*;
public class XWebServer
implements PipeMsgListener
{
P2PSocket pps = new P2PSocket();
BaseMessage bm = new BaseMessage();
String default_url = "http://127.0.0.1:8080/demo/";
public XWebServer()
{
pps.setInputPipeName("001s");
pps.setInListener(this);
pps.bind();
}
public void pipeMsgEvent(PipeMsgEvent event)
{
String temp = null;
MessageImpl mi = (MessageImpl)event.getMessage();
temp = mi.getString(bm.WEB_MESSAGE_TYPE);
if(temp.equals(bm.WEB_MESSAGE_REQEST))
{
doWEBRequest(mi);
return;
}
if(temp.equals(bm.WEB_MESSAGE_REQEST_FIRST))
{
doWEBRequestFirst(mi);
return;
}
}
public void doWebRequest(MessageImpl mi)
{
System.out.println("捕获一个网站内容请求!");
String url = mi.getString(bm.WEB_URL);
pps.send(bm.newWEBMessage(url2Stream(url),pps.getOutputPipeName(),pps.getInputPipeName(),bm.WEB_CONTENT,"Temp");
}
public void doWebRequestFirst(MessageImpl mi)
{
System.out.println("捕获一个首次连接请求!");
MessageElementImpl mei = (MessageElementImpl)mi.getElement(bm.WEB_REQUEST_FIRST);
String file_name = mi.getString(bm.WEB_URL);
saveADV(mei.getStream(),file_name);
pps.setOutputPipeName(file_name);
pps.setOutListener(pps);
pps.connect(file_name);
pps.send(bm.newWEBMessage(url2Stream(url),pps.getOutputPipeName(),pps.getInputPipeName(),bm.WEB_CONTENT,"Temp");
}
public void saveAdv(InputStream is,String fname)
{
int length;
byte buf[] = new byte[1024];
try
{
FileOutputStream fos = new FileOutputStream("adv/"+fname);
BufferedOutputStream bos = new BufferedOutputStream(fos);
BufferedInputStream bis = new BufferedInputStream(is);
while((length=bis.read(buf,0,1024))!=-1)
{
bos.write(buf,0,length);
bos.flush();
}
bis.close();
bos.close();
fos.close();
}catch(IOException ioe)
{
System.out.println("写入文件错误:"+ioe);
}
}
public InputStream url2Stream(String url)
{
try
{
String a = default_url;
if(url!=null)a = a + url;
System.out.println(a);
URL link = new URL(a)
return link.openStream();
}catch(IOException ioe)
{
System.out.println("出错!");
System.exit(-1);
}
return null;
}
public static void main(String args[])
{
XWebServer xf = new XWebServer();
}
};