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

📄 serversocketrunnable.java

📁 一个基于java的局域网聊天程序
💻 JAVA
字号:
import java.io.*;
import java.net.*;
public class ServerSocketRunnable implements Runnable {

		private Socket socket = null;
		
		public ServerSocketRunnable(Socket argSocket) {
			socket = argSocket;
		}
		
		private PrintWriter getWriter(Socket socket) throws IOException {
			return new PrintWriter(socket.getOutputStream(),true);
		}
		
		private BufferedReader getReader(Socket socket) throws IOException {
			return new BufferedReader(new InputStreamReader(socket.getInputStream()));
		}
		
		/*public PrintWriter getDestination(MyServerSocket mss,String name) {
			return mss.getmap(name);
		}*/
		public void receive(Socket socket) {
			String receiver=null;
			String sender=null;
			try {				
				BufferedReader br = getReader(socket);
				String tmp = null;
				//tmp=br.readLine();//去掉第一行的登录名
				tmp=null;
				while((tmp = br.readLine()) != null) {
					//System.out.println(tmp);
					int index=tmp.indexOf(':');//返回':'之前的接收方
					System.out.println(index);
					receiver=tmp.substring(0, index);
					String message=tmp.substring(index+1);
					sender=message.substring(0, message.indexOf(':'));
					MyServerSocket.map.get(receiver).println(message);//转发
				}
			} catch (IOException e) {
				e.printStackTrace();
			}

		}
		public void run() {
			String hostName = socket.getInetAddress().getHostName();
			System.out.println("接受到请求:"+hostName);
			receive(socket);
			/*try {
				PrintWriter pw = getWriter(socket);
				BufferedReader br = getReader(socket);
				BufferedReader inputBr = new BufferedReader(new InputStreamReader(System.in));
				String tmp = null;
				while((tmp = br.readLine()) != null) {
					System.out.println(hostName+":"+ tmp);
					pw.println(inputBr.readLine());
					if(tmp.equals("bye")) {
						break;
					}
				}
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if(socket != null) {
					try {
						socket.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}*/
		}
}

⌨️ 快捷键说明

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