www.pudn.com > java实验的web浏览器源代码支持mime.rar > HttpConnect.java
package http;
import java.io.*;
import java.net.*;
import java.lang.*;
//-------------------- class ConnectThread -----------------
public class HttpConnect{
Socket ConnectSocket=null;
ServerSocket ListenSocket=null;
// static jwsconf httpconf=new jwsconf();
byte readfromfile[];
public HttpConnect(){
System.out.print("Start Server");
try{
ListenSocket = new ServerSocket(Integer.parseInt(jwsconf.HttpConf("Port"),10),
Integer.parseInt(jwsconf.HttpConf("MaxKeepAliveRequests"),10));
}//end try
catch (IOException e) {}//end catch
System.out.println(" OK!");
}//end HttpConnect()
public void Listen(){
for(;{
try{
ConnectSocket=ListenSocket.accept();
}//end try
catch (IOException e) {
}
ConnectThread HttpThread=new ConnectThread(ConnectSocket);
HttpThread.start();
}//end for
}
}//end class HttpConnect
class ConnectThread extends Thread{
private HttpRequest httprequest = null;
private HttpResponse httpresponse = null;
Socket Client;
BufferedReader receivmsg;
PrintStream sendmsg;
String ReadFromClient[];
ConnectThread(Socket ConnectSocket){
Client=ConnectSocket;
}
public void run(){
int r=0;
System.out.print("accept From " + Client.getInetAddress().getHostAddress() + "\n");
ReadFromClient=new String[1024];
try{
receivmsg =new BufferedReader(new InputStreamReader(Client.getInputStream()));
sendmsg =new PrintStream(Client.getOutputStream());
ReadFromClient[r++] = receivmsg.readLine();
//System.out.println(ReadFromClient[r]);
int c=0,off=0;
char[] readbytes=new char[1024*1024];
while(receivmsg.ready()){
c = receivmsg.read();
//System.out.print((char)c);
if (c == '\n'){
ReadFromClient[r]=new String(readbytes,0,off-1);
off=0;
r++;
continue;
}
readbytes[off++]=(char)c;
}
httprequest = new HttpRequest(ReadFromClient); //处理浏览器发来的请求
httpresponse = new HttpResponse(sendmsg,httprequest);
httpresponse.Toclient(); //输出信息到浏览器
CloseConnect();
}catch (IOException e) {
CloseConnect();
}//end catch
}//end run()
void CloseConnect(){
try{
receivmsg.close();
sendmsg.close();
Client.close();
}catch (IOException e) {}//end catch
}
}//-------------------- end class ConnectThread ---------------