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

📄 fileclient.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.Socket;public class FileClient extends Peer implements Runnable {	private Thread exac;	private Socket s;	public FileClient(String ip, int port) {		super();		exac = new Thread(this);		try {			s = new Socket(ip, port);			gui.setStatusContent("The fileclient started.");		} catch (IOException e) {			gui.setStatusContent("Could not create FileSocket.");		}	}	public void start() {		exac.start();	}	public void run() {		String message = null;		while (true) {			switch (getStatus()) {			case Utility.BEGIN_CONNECT:				try {					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 FilePipe.");				}				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.");					}					if (message.equals(Utility.RECV)) {						setStatus(Utility.SENDING);					}					if (message.equals(Utility.REFU)) {						gui.setStatusContent("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.");				break;							case Utility.RECVING:				recvFile();				setStatus(Utility.CONNECTED);				gui.setStatusContent("Transfered.");				break;				case Utility.DISCONNECTING:				close();				try{					s.close();				}catch(Exception e){					gui.setStatusContent("Could not close.");				}				gui.setStatusContent("The client disconnected.");				gui.reSet();				return;			}			System.out.println("The client status is " + getStatus());		}	}	public static void main(String[] args) throws Exception {		gui = new GUI(Utility.CLIENT);	}}

⌨️ 快捷键说明

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