//麻煩幫我看一下是哪里出了問題,謝謝!
//服務(wù)器
package?FileInput;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileWriter;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.ObjectInputStream;
import?java.io.PrintWriter;
import?java.net.ServerSocket;
import?java.net.Socket;
import?java.util.ArrayList;
public?class?Servers?{
public?static?void?main(String[]?args)?throws?IOException,?ClassNotFoundException?{
String?info?=?null;
ArrayList<User>?users=?new?ArrayList<User>();
User?u?=?new?User();
System.out.println("服務(wù)器開始運行");
ServerSocket?ss?=?new?ServerSocket(8810);
Socket?s?=?ss.accept();
InputStream?is?=?s.getInputStream();
InputStreamReader?isr?=?new?InputStreamReader(is);
BufferedReader?br?=?new?BufferedReader(isr);
PrintWriter?pw?=?new?PrintWriter(s.getOutputStream());
ObjectInputStream?ois?=?new?ObjectInputStream(is);
FileWriter?fw?=?new?FileWriter("README1.md");
while?(true)?{
info?=?br.readLine();
if?(info?!=?null)
System.out.println(info);
if?(info?==?null)?{
continue;
}?else?if?(info.equals("log"))?{
pw.println("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("exit"))?{
pw.println("exit");
pw.flush();
System.out.println("exit已發(fā)送");
break;
}?else?if?(info.equals("logUp"))?{
pw.println("logUp");
pw.flush();
System.out.println("logUp已發(fā)送");
User?user?=?null;
while?((user?=?(User)?ois.readObject())?==?null);
boolean?flag?=?true;
for?(int?i?=?0;?i?<?users.size();?i++)?{
if?(user.getName().equals(users.get(i).getName()))?{
flag?=?false;
break;
}
}
if?(flag)?{
users.add(user);
pw.print("logUpSuccess");
pw.flush();
System.out.println("logUpSuccess已發(fā)送");
}?else?{
pw.println("logUpFailure");
pw.flush();
System.out.println("logUpFailure已發(fā)送");
}
}?else?if?(info.equals("logIn"))?{
pw.println("logIn");
pw.flush();
System.out.println("logIn已發(fā)送");
User?user?=?null;
while?((user?=?(User)?ois.readObject())?==?null);
boolean?flagN?=?false;
boolean?flagP?=?false;
for?(int?i?=?0;?i?<?users.size();?i++)?{
if?(user.getName().equals(users.get(i).getName()))?{
flagN?=?true;
if?(user.getPassword().equals(users.get(i).getPassword()))?{
flagP?=?true;
u?=?users.get(i);
}
break;
}
}
if?(flagN?&&?flagP)?{
pw.print("logInSuccess");
pw.flush();
System.out.println("logInSuccess已發(fā)送");
}?else?if?(flagN?&&?!flagP)?{
pw.print("logInFailurePassword");
pw.flush();
System.out.println("logInFailurePassword已發(fā)送");
}?else?{
pw.print("logInFailureName");
pw.flush();
System.out.println("logInFailureName已發(fā)送");
}
}?else?if?(info.equals("logOut"))?{
pw.println("logOut");
pw.flush();
System.out.println("logOut已發(fā)送");
}?else?if?(info.equals("code"))?{
pw.println("code");
pw.flush();
System.out.println("code已發(fā)送");
}?else?if?(info.equals("putFlie"))?{
pw.println("file");
pw.flush();
System.out.println("file已發(fā)送");
while?(true)?{
int?l?=?0;
char[]?c?=?new?char[3072];
while?((l?=?isr.read(c,?0,?c.length))?==?-1);
do?{
fw.write(c,?0,?l);
}?while?((l?=?isr.read(c,?0,?c.length))?==?-1);
System.out.println("文件已寫出");
}
}
}
fw.close();
s.close();
ss.close();
}
}
//客戶端
package?FileInput;
import?java.io.BufferedReader;
import?java.io.FileReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.io.ObjectOutputStream;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?java.util.NoSuchElementException;
import?java.util.Scanner;
public?class?Client{
public?static?void?main(String[]?args)?throws?UnknownHostException,?IOException?{
String?info?=?null;
Scanner?input?=?new?Scanner(System.in);
Client?client?=?new?Client();
Socket?s?=?new?Socket("localhost",?8810);
OutputStream?os?=?s.getOutputStream();
PrintWriter?pw?=?new?PrintWriter(os);
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(s.getInputStream()));
ObjectOutputStream?oos?=?new?ObjectOutputStream(os);
FileReader?fr?=?new?FileReader("src/Internet/README.md");
pw.println("log");
pw.flush();
System.out.println("log已發(fā)送");
while?(true)?{
info?=?br.readLine();
if?(info?!=?null)?System.out.println(info);
if?(info?==?null)?{
continue;
}?else?if?(info.equals("logUpSuccess"))?{
System.out.println("注冊成功!");
pw.print("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("logUpFailure"))?{
System.out.println("用戶已存在!");
pw.print("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("logInFailurePassword"))?{
System.out.println("密碼錯誤!");
pw.print("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("logUpFailureName"))?{
System.out.println("用戶不存在!");
pw.print("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("logUpSuccess"))?{
System.out.println("登錄成功!");
pw.print("code");
pw.flush();
System.out.println("code已發(fā)送");
}?else?if?(info.equals("logOut"))?{
System.out.println("登出成功!");
pw.print("log");
pw.flush();
System.out.println("log已發(fā)送");
}?else?if?(info.equals("log"))?{
String?select?=?client.log(input);
pw.println(select);
pw.flush();
System.out.println(select+"已發(fā)送");
}?else?if?(info.equals("logUp"))?{
User?user?=?client.logUp(input);
oos.writeObject(user);
oos.flush();
System.out.println("user已發(fā)送");
}?else?if?(info.equals("file"))?{
String?select?=?client.fileInput(input);
char[]?c?=?new?char[10?*?1024];
int?l?=?0;
while?((l?=?fr.read(c,?0,?c.length))!=?-1)?{
pw.write(c,?0,?l);
}
System.out.println("文件已發(fā)送");
}?else?if?(info.equals("exit"))?{
System.out.println("文件傳輸系統(tǒng)已退出!");
break;
}?else?if?(info.equals("logIn"))?{
User?user?=?client.logIn(input);
oos.writeObject(user);
oos.flush();
System.out.println("user已發(fā)送");
}?else?if?(info.equals("code"))?{
String?select?=?client.code(input);
pw.println(select);
pw.flush();
System.out.println(select+"已發(fā)送");
}?
}
fr.close();
s.close();
}
public?String?log(Scanner?input)?{
System.out.println("歡迎使用文件上傳系統(tǒng),請先登錄或注冊。");
System.out.println("1.?注冊");
System.out.println("2.?登錄");
System.out.println("3.?退出");
System.out.println("請輸入相應的序號:");
int?select?=?0;
do?{
try?{
select?=?input.nextInt();
}?catch?(NoSuchElementException?e)?{
System.out.println("請輸入相應的序號!");
continue;
}?catch?(NullPointerException?e)?{
System.out.println("請輸入相應的序號!");
continue;
}
if?(select?>?3?||?select?<?1)?{
System.out.println("請輸入相應的序號!");
continue;
}
}?while?(select?>?3?||?select?<?1);
String?s?=?null;
switch?(select)?{
case?1:
s?=?"logUp";
break;
case?2:
s?=?"logIn";
break;
default:
s?=?"exit";
break;
}
return?s;
}
public?User?logUp(Scanner?input)?{
User?user?=?new?User();
String?name?=?null;
String?password?=?null;
System.out.println("請輸入用戶名:");
name?=?input.next();
user.setName(name);
while?(true)?{
System.out.println("請輸入密碼:");
password?=?input.next();
user.setPassword(password);
System.out.println("請再次輸入密碼:");
password?=?input.next();
if?(!password.equals(user.getPassword()))?{
System.out.println("密碼與重復密碼不匹配,請重新輸入密碼!");
}?else?{
break;
}
}
return?user;
}
public?User?logIn(Scanner?input)?{
User?user?=?new?User();
String?name?=?null;
String?password?=?null;
System.out.println("請輸入用戶名:");
name?=?input.next();
user.setName(name);
System.out.println("請輸入密碼:");
password?=?input.next();
user.setPassword(password);
return?user;
}
public?String?code(Scanner?input)?{
System.out.println("請選擇功能");
System.out.println("1.?上傳文件");
System.out.println("2.?登出");
int?select?=?0;
do?{
try?{
select?=?input.nextInt();
}?catch?(NoSuchElementException?e)?{
System.out.println("請輸入相應的序號!");
continue;
}?catch?(NullPointerException?e)?{
System.out.println("請輸入相應的序號!");
continue;
}
if?(select?>?2?||?select?<?1)?{
System.out.println("請輸入相應的序號!");
continue;
}
}?while?(select?>?2?||?select?<?1);
String?s?=?null;
switch?(select)?{
case?1:
s?=?"putFile";
break;
case?2:
s?=?"logOut";
break;
default:
}
return?s;
}
public?String?fileInput(Scanner?input)?{
System.out.println("請輸入要上傳的文件路徑(相對路徑或絕對路徑)");
String?select?=?input.next();
return?select;
}
}
//user
package?FileInput;
import?java.io.Serializable;
public?class?User?implements?Serializable{
private?String?name;
private?String?password;
User()?{
name?=?null;
password?=?null;
}
String?getName()?{
return?name;
}
void?setName(String?name)?{
this.name?=?name;
}
String?getPassword()?{
return?password;
}
void?setPassword(String?password)?{
this.password?=?password;
}
}
2022-03-27
老師,能不能把安裝包也給我們啊,謝謝老師了type表示按鈕的類型,是提交按鈕還是重置按鈕;name表示該按鈕的名稱,以備后臺程序ASP、PHP使用
2016-07-31
服務(wù)器的工作信息
服務(wù)器開始運行
已收到:log
log已發(fā)送
已收到:logIn
logIn已發(fā)送
logInFailureName已發(fā)送
這是客戶端的
log已發(fā)送
已收到:log
歡迎使用文件上傳系統(tǒng),請先登錄或注冊。
1. 注冊
2. 登錄
3. 退出
請輸入相應的序號:
2
logIn已發(fā)送
已收到:logIn
請輸入用戶名:
123
請輸入密碼:
123
user已發(fā)送