📄 serversocketrunnable.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 + -