1.在blog 說明 Class InetAddress 的用法,以程式舉例
2.說明FTP client/server 程式與FTP通訊協定
==============================================================
//Ftp Client
import java.io.*;
import java.net.*;
public class Client13_4 {
int i;
static String iaddr;
static int port;
static String infilename;
public Client13_4() {
try{
Socket socket=new Socket(InetAddress.getByName(iaddr),port);
DataOutputStream outstream = new DataOutputStream(socket.getOutputStream());
FileInputStream fis = new FileInputStream(infilename);
while((i=fis.read()) !=-1)
outstream.writeInt(i);
outstream.writeInt(i);
System.out.println("Data sent to internet successfully!");
socket.close();
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void main(String args[]) {
if (args.length < 3){
System.out.println("USAGE: java Client13_4 [iaddr] [port] [infilename]");
System.exit(1);
}
iaddr = args[0];
port=Integer.parseInt(args[1]);
infilename = args[2];
Client13_4 ClientStart=new Client13_4();
}
}
==============================================================
//FTP server
import java.net.*;
import java.io.*;
public class Server13_4 {
int messagein;
static int port;
static String outfilename;
public Server13_4() {
try{
ServerSocket SS = new ServerSocket(port);
System.out.println("Server is created and waiting Client to connect...");
Socket socket = SS.accept();
System.out.println("Client IP = " +
socket.getInetAddress().getHostAddress());
DataInputStream instream = new DataInputStream(socket.getInputStream());
FileOutputStream fos = new FileOutputStream(outfilename);
while(messagein != -1){
messagein = instream.readInt();
fos.write(messagein);
}
System.out.println("Data written to File successfully!");
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void main(String args[]){
if(args.length < 2){
System.out.println("Usage: java Server13_4 [port] [outfilename]");
System.exit(1);
}
port=Integer.parseInt(args[0]);
outfilename = args[1];
Server13_4 ServerStart=new Server13_4();
}
}
==============================================================
檔案傳輸協定(英文:File Transfer Protocol,簡稱為FTP)是用於在網路上進行檔案傳輸的一套標準協議。它屬於網路傳輸協定的應用層。
FTP是一個8位元的用戶端-伺服器協定,能操作任何型別的檔案而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求資料之間的時間,會非常長;並且不時的必須執行一些冗長的登陸行程。
3. 何為 url, 什麼是 Domain Name System
統一資源定位符(URL,英語 Uniform / Universal Resource Locator 的縮寫)也被稱為網頁位址,是網際網路上標準的資源的位址(Address)。它最初是由蒂姆·伯納斯-李發明用來作為全球資訊網的位址的。現在它已經被全球資訊網協會編製為網際網路標準RFC1738了。
4. window 之 localhost 如何設定
建議修改C:\windows\system32\drivers\etc\hosts 檔案,加上自訂的伺服器名稱跟127.0.0.1的對應,這樣你在網址列輸入自訂的伺服器名稱時,它就會到127.0.0.1,也就是localhost,然後apache的虛擬伺服器就會接手處理。
利用這個方法,就可以在本地模擬多個網址。
舉例來說,hosts裡面有一條localhost1 127.0.0.1,然後虛擬伺服器設定裡面的ServerName有localhost1,打在瀏覽器網址列打http://localhost1,應該就可以連到你設定的虛擬伺服器。