📄 connection.java
字号:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.io.Serializable;
import java.net.Socket;
import java.net.SocketException;
import java.util.Vector;
/**
* 处理一个客户连接
*
* @author 葛一鸣
*/
public class Connection implements Runnable {
private final Socket socket;
// 读入对象
protected ObjectInputStream objReader;
// 写出命令
protected PrintStream ps;
// 读入客户端请求
protected BufferedReader sreader;
private ObjectOutputStream objWriter;
/**
* 初始化一个连接
*
* @param socket
* 客户端的socket,方便连接
* @param am
* 本机对应的AgentManager,方便对其进行通知
*/
public Connection(Socket socket) {
this.socket = socket;
try {
objReader = new ObjectInputStream(socket.getInputStream());
ps = new PrintStream(socket.getOutputStream());
sreader = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
objWriter=new ObjectOutputStream(socket.getOutputStream());
} catch (IOException e) {
try {
socket.close();
} catch (IOException e2) {
System.err.println("Exception while getting socket streram: "
+ e);
return;
}
}
}
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run() 处理一个客户连接
*/
public void run() {
String cmd="";
String fileContent="";
String tmp="";
while(true){
try {
fileContent="";
cmd="";
cmd=sreader.readLine();
if(cmd==null)continue;
if("exit".equalsIgnoreCase(cmd)){
System.out.println(socket.getRemoteSocketAddress()+"的连接已经关闭");
socket.close();
return;
}
File file=new File(cmd);
if(!file.exists())
ps.println("文件不存在!");
else{
//文件存在返回内容
BufferedReader br=new BufferedReader(new FileReader(file));
while((tmp=br.readLine())!=null){
fileContent=fileContent+tmp;
//简单期间,将文件中的回车,替换为空格
fileContent=fileContent+" ";
}
ps.println(fileContent);
}
}
catch (SocketException e) {
// TODO Auto-generated catch block
System.out.println("发生异常,强制关闭连接!");
return;
}catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("发生异常,强制关闭连接!");
return;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -