?? phttpd.java
字號:
// 模仿HTTP服務器程序Phttpd.java
// 此程序利用端口號8001運行的服務器程序
// 運行方式:java Phttp 數據文件名
// 對于WWW客戶端的連接請求,回送用參數指定的文件
// 利用的庫
import java .io.* ;
import java.net.* ;
import java.util.* ;
// Phttpd類
class Phttpd{
public static void main(String args[]){
// 準備服務器socket
ServerSocket servsock = null ;
Socket sock ;
// 準備輸入輸出
OutputStream out ;
BufferedReader in ;
FileInputStream infile = null;
byte[] buff = new byte[1024];
// 其他參數
boolean cont = true ;
int i ;
try{
// 生成服務器socket(端口號為8001)
servsock = new ServerSocket(8001,300) ;
while(true){
sock = servsock.accept() ;// 接收連接請求
// 顯示連接端口
System.out.println("連接請求"
+ (sock.getInetAddress()).getHostName()) ;
// 生成對象文件infile,準備文件
try
{
infile = new FileInputStream(args[0]) ;
}
catch(Exception e){
// 文件準備失敗
System.err.println("沒有找到文件") ;
System.exit(1) ;
}
// 生成讀寫對象
in = new BufferedReader(new
InputStreamReader(sock.getInputStream()));
out = sock.getOutputStream() ;
// 暫時跳過2個換行符的讀取
for(i = 0; i < 2;++i)
in.readLine() ;
// 輸出文件
cont = true ;
while(cont){
// 從文件中讀取數據并發送到網絡
try{
int n = infile.read(buff);
out.write(buff,0,n) ;
}
catch(Exception e){
cont = false ;
}
}
// 連接結束
sock.close() ;
infile.close() ;
}
}catch(IOException e){
System.exit(1) ;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -