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

📄 fileserver.java

📁 一个用java写的即时聊天系统 C/S结构的
💻 JAVA
字号:
package mypkg;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class FileServer extends Peer implements Runnable{	private Thread exac;	private ServerSocket ss;	private Socket s;	public FileServer(int port) {		super();		exac = new Thread(this);		try {			ss = new ServerSocket(port);			gui.setStatusContent("The fileserver started.");/*			Log.getLogger().info("The fileserver started.");*/		} catch (IOException e) {			gui.setStatusContent("Could not caeate FileServerSocket.");		}	}	public void start() {		exac.start();	}	public void run() {		String message = null;		while (true) {			switch (getStatus()) {			case Utility.BEGIN_CONNECT:				try {					s = ss.accept();					bis = new BufferedInputStream(s.getInputStream());					bos = new BufferedOutputStream(s.getOutputStream());					in = new BufferedReader(new InputStreamReader(s	.getInputStream()));					out = new PrintWriter(s.getOutputStream());										setStatus(Utility.CONNECTED);				} catch (IOException e) {					gui.setStatusContent("Could not create socket.");/*					Log.getLogger().warn("Could not create socket.");*/				}				break;			case Utility.CONNECTED:				try {					//firstly,to check the status is to be changed or not					//if has been changed , then go out of the selection					Thread.sleep(100);					if(getStatus()!=Utility.CONNECTED)					break;				} catch (InterruptedException e1) {					e1.printStackTrace();				}								message = receive();				if (message != null) {					if (message.equals("DISCONNECT")) {						setStatus(Utility.DISCONNECTING);						send(Utility.MSG, "DISCONNECT");						gui.setStatusContent("Diconnected.");/*						Log.getLogger().info("Diconnected.");*/					}					if (message.equals(Utility.RECV)) {						setStatus(Utility.SENDING);					}					if (message.equals(Utility.REFU)) {						gui.setStatusContent("Your friend refuse your attachement.");/*						Log.getLogger().info("Your friend refuse your attachement.");*/					}				}				break;							case Utility.SENDING:				try {					// send file thread sleep,wait receive file thread ready					Thread.sleep(100);				} catch (InterruptedException e) {					e.printStackTrace();				}				sendFile();				setStatus(Utility.CONNECTED);				gui.setStatusContent("Transfered.");/*				Log.getLogger().info("Transfered.");*/				break;							case Utility.RECVING:				recvFile();				setStatus(Utility.CONNECTED);				gui.setStatusContent("Transfered.");/*				Log.getLogger().info("Transfered.");*/				break;							case Utility.DISCONNECTING:				close();				try{					ss.close();					s.close();				}catch(Exception e){					gui.setStatusContent("Could not close.");				}				gui.setStatusContent("The server disconnected.");				gui.reSet();/*				Log.getLogger().info("The server disconnected.");*/				return;			}			System.out.println("The server status is " + getStatus());		}	}	public static void main(String[] args) throws Exception {		gui = new GUI(Utility.SERVER);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -