import java.io.*;
import java.net.*;
public class Server {
public static void main
(String[] args
) { try {
int port
= Integer.
parseInt(args
[0]); System.
out.
println("簡易檔案接收..."); System.
out.
printf("將接收檔案於連接埠: %d%n", port
);
while(true) {
System.
out.
println("傾聽中....");
Socket clientSkt
= serverSkt.
accept();
System.
out.
printf("與 %s 建立連線%n",
clientSkt.getInetAddress().toString());
// 取得檔案名稱
clientSkt.getInputStream())).readLine();
System.
out.
printf("接收檔案 %s ...", fileName
);
int readin;
while((readin = inputStream.read()) != -1) {
outputStream.write(readin);
}
outputStream.flush();
outputStream.close();
inputStream.close();
clientSkt.close();
System.
out.
println("\n檔案接收完畢!"); }
}
e.printStackTrace();
}
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEubmV0Lio7CgpwdWJsaWMgY2xhc3MgU2VydmVyIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsgCiAgICAgICAgdHJ5IHsgCiAgICAgICAgICAgIGludCBwb3J0ID0gSW50ZWdlci5wYXJzZUludChhcmdzWzBdKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLnsKHmmJPmqpTmoYjmjqXmlLYuLi4iKTsgCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCLlsIfmjqXmlLbmqpTmoYjmlrzpgKPmjqXln6A6ICVkJW4iLCBwb3J0KTsgCgogICAgICAgICAgICBTZXJ2ZXJTb2NrZXQgc2VydmVyU2t0ID0gbmV3IFNlcnZlclNvY2tldChwb3J0KTsgCiAgICAgICAgICAgIAogICAgICAgICAgICB3aGlsZSh0cnVlKSB7IAogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLlgr7ogb3kuK0uLi4uIik7IAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBTb2NrZXQgY2xpZW50U2t0ID0gc2VydmVyU2t0LmFjY2VwdCgpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50Zigi6IiHICVzIOW7uueri+mAo+e3miVuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFNrdC5nZXRJbmV0QWRkcmVzcygpLnRvU3RyaW5nKCkpOyAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vIOWPluW+l+aqlOahiOWQjeeosQogICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50U2t0LmdldElucHV0U3RyZWFtKCkpKS5yZWFkTGluZSgpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50Zigi5o6l5pS25qqU5qGIICVzIC4uLiIsIGZpbGVOYW1lKTsgCgogICAgICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IAogICAgICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGNsaWVudFNrdC5nZXRJbnB1dFN0cmVhbSgpKTsgCiAgICAgICAgICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBvdXRwdXRTdHJlYW0gPSAKICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZU5hbWUpKTsgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGludCByZWFkaW47IAogICAgICAgICAgICAgICAgd2hpbGUoKHJlYWRpbiA9IGlucHV0U3RyZWFtLnJlYWQoKSkgIT0gLTEpIHsgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtLndyaXRlKHJlYWRpbik7CiAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnlpZWxkKCk7CiAgICAgICAgICAgICAgICB9IAoKICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbS5mbHVzaCgpOwogICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtLmNsb3NlKCk7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaW5wdXRTdHJlYW0uY2xvc2UoKTsgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGNsaWVudFNrdC5jbG9zZSgpOyAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbuaqlOahiOaOpeaUtuWujOeVou+8gSIpOyAKICAgICAgICAgICAgfSAKICAgICAgICB9IAogICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7IAogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOyAKICAgICAgICB9IAogICAgfSAgICAgCn0=