📄 serverconnect.java
字号:
package server;
import java.net.*;
import java.io.*;
import fileSystem.*;
public class ServerConnect{
private ServerSocket server;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
private MyFileSystem myFS;
public ServerConnect(){
try{
server = new ServerSocket(4600);
socket=server.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
System.out.println("server built successfully");
myFS = new MyFileSystem();
}catch(IOException e){
}
}
public void SeverFuc(){
try{
String str=in.readLine();
while(!str.equals("quit")){
if(str.equals("login")){
String name=in.readLine();
String pwd=in.readLine();
ClientID id = VirtualData.getID("Login", name, pwd);
if (id == null) {
out.println("false");
}
else {
out.println("true");
out.println(id.returnUID());
out.println(id.returnGID());
}
}
else if (str.equals("check_id")){
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int uid = Integer.valueOf(in.readLine());
int gid = Integer.valueOf(in.readLine());
int iNodeNumber = myFS.getINodeNumber(path);
boolean ok = VirtualData.checkID(iNodeNumber, uid, gid);
if (ok) {
out.println("true");
}
else {
out.println("false");
}
}
else if (str.equals("check_gid")){
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int gid = Integer.valueOf(in.readLine());
int iNodeNumber = myFS.getINodeNumber(path);
boolean ok = VirtualData.checkGID(iNodeNumber,gid);
if (ok) {
out.println("true");
}
else {
out.println("false");
}
}
else if(str.equals("file_creat")){
String name=in.readLine();
String pathName = in.readLine();
Path path = null;
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int uid = Integer.valueOf(in.readLine());
int gid = Integer.valueOf(in.readLine());
int i = myFS.fileCreat(name, path, uid, gid);
out.println(String.valueOf(i));
}
else if(str.equals("file_open")){
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int gid = Integer.valueOf(in.readLine());
FileINode fileINode = myFS.fileOpen(path);
if (fileINode != null){
out.println("true");
out.println(fileINode.getName());
out.println(String.valueOf(fileINode.getLength()));
out.println(fileINode.getCreatTime());
out.println(fileINode.getAccessTime());
out.println(fileINode.getAmendTime());
}
else {
out.println("false");
}
}
else if(str.equals("file_rename")){
String newName=in.readLine();
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
String oldName = in.readLine();
int uid = Integer.valueOf(in.readLine());
int gid = Integer.valueOf(in.readLine());
int get = myFS.fileRename(oldName, newName, path);
out.println(String.valueOf(get));
}
else if(str.equals("file_delete")){
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int uid = Integer.valueOf(in.readLine());
int gid = Integer.valueOf(in.readLine());
boolean ok = myFS.fileDelete(path);
if (ok) {
out.println("true");
}
else {
out.println("false");
}
}
else if(str.equals("file_write")){
int size = Integer.valueOf(in.readLine());
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int uid = Integer.valueOf(in.readLine());
int gid = Integer.valueOf(in.readLine());
boolean ok = myFS.fileWrite(size, path);
if (ok) {
out.println("true");
}
else {
out.println("false");
}
}
else if(str.equals("dir_creat")){
Path path = null;
String dirName = in.readLine();
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
int i = myFS.dirCreat(dirName, path);
out.println(String.valueOf(i));
}
else if(str.equals("dir_delete")){
Path path = null;
String pathName = in.readLine();
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
boolean ok = myFS.dirDelete(path);
if (ok) {
out.println("true");
}
else {
out.println("false");
}
}
else if(str.equals("dir_open")){
String pathName = in.readLine();
Path path = null;
while(!pathName.equals("end_end")){
if (path == null) {
path = new Path(pathName);
}
else {
path.addPath(pathName);
}
pathName = in.readLine();
}
CatalogueItem ci = myFS.dirOpen(path);
if (ci != null) {
out.println("true");
}
else {
out.println("false");
}
for (CatalogueItem c = ci; c!=null; c=c.getTail()){
out.println(c.getName());
out.println(c.getCreatTime());
out.println(c.getAccessTime());
if (c.getIsDir().equals("true")) {
out.println("directory");
}
else {
out.println("file");
}
}
out.println("end_end");
}
str=in.readLine();
}
server.close();
socket.close();
in.close();
out.close();
}catch(IOException e){
}
}
public static void main(String[] args){
ServerConnect server=new ServerConnect();
server.SeverFuc();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -