📄 processsocket.java
字号:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class ProcessSocket extends Thread {
private Socket socket;
public int workingState;
public ProcessSocket() {
this.socket = null;
workingState = 0;
}
public void ini(Socket socket) {
this.socket = socket;
this.workingState = 1;
}
public int getWorkingState() {
return this.workingState;
}
public ProcessSocket(Socket socket) {
this.socket = socket;
}
public void run() {
try {
OutputStream os = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String header = br.readLine();
String content = header;
while (content.length() > 0) {
System.out.println(content);
content = br.readLine();
}
String[] splits = header.split(" ");
String fileName = splits[1];
File file = new File(Server.SERVERLOC + fileName);
if (!file.exists()) {
os.write(Server.FAILEDHEADER.getBytes());
os.close();
socket.close();
} else {
FileInputStream fi = new FileInputStream(file);
byte[] buffer = new byte[1024];
int length = fi.read(buffer);
os.write(Server.SUCCESSHEADER.getBytes());
while (length != -1) {
os.write(buffer, 0, length);
length = fi.read(buffer);
}
os.close();
fi.close();
socket.close();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -