⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connection.java

📁 java socket的一个例子
💻 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 + -