------------------------------------------
加入多线程
------------------------------------------
MyServer
public static ArrayList<Socket> socketList = new ArrayList<Socket>();
ServerSocket ss = new ServerSocket(30000);
Socket s = ss.accept();
socketList.add(s);
//将获取的socket交给线程类处理
new Thread(new ServerThread(s)).start();
ServerThread
public class ServerThread implements Runnable{
Socket s = null;
BufferedReader br = null;
public ServerThread(Socket s) throws IOException{
this.s = s;
br = new BufferedReader(new InpuStreamReader(s.getInputStream));
}
public void run(){
try{
String content = null;
while(null != (content = readFromClient())){
for(Socket s : MyServer.socketList){
PrintStream ps = new PrintStream
(s.getOutputStream());
ps.println(content);
}
}
}catch(IOException e){
}
}
public String readFromClient{
try{
return br.readLine();
}catch (IOException e){
MyServer.socketList.remove(s);
}
return null;
}
}
MyClient
Socket s = new Socket("127.0.0.1",30000);
//读取ServerSocket发来的数据
new Thread(new ClientThread(s)).start();
//以下代码用于向ServerSocket发送数据
PrintStream ps = new PrintStream(s.getOutputStream());
String line = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(null!=(line=br.readLine())){
ps.println(line);
}
ClientThread
public class ClientThread implements Runnable{
private Socket s;
BufferedReader br = null;
public ClientThread(Socket s)throws IOException{
this.s = s;
br = new BufferedReader(
new InputStreamReader(s.getInputStream));
}
public void run(){
try{
String content = null;
while(null!=(content = br.readLine())){
System.out.println(content);
}
}catch (Exception e){
e.printStackTrace();
}
}
}