import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Client client = new Client();
try {
client.request();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void request() throws Exception{
Socket client = new Socket("127.0.0.1", 8888);
client.setSoTimeout(10*1000);
//input from keyboard
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
//send to server
PrintStream out=new PrintStream(client.getOutputStream());
//get from server
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean flag=true;
while(flag){
System.out.println("Input:");
String tmp=input.readLine();
out.println(tmp);
if(tmp.equals("bye")){
flag = !flag;
}
else{
String resp=in.readLine();
System.out.println("It comes from server:"+resp);
}
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Server {
static List<Socket> list;
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
list = new ArrayList<>();
ServerSocket server = new ServerSocket(8888);
Socket client = null;
boolean f=true;
while(f){
client = server.accept();
System.out.println("Conn to client.");
new Thread(new ServerThread(client)).start();
}
server.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
public class ServerThread implements Runnable {
private Socket client;
public ServerThread(Socket client) {
// TODO Auto-generated constructor stub
this.client = client;
Server.list.add(client);
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
// send to client
// get from client
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean flag = true;
while (flag) {
String string = in.readLine();
if (string == null || string.length() == 0) {
flag = false;
} else {
if (string.equals("bye")) {
flag = !flag;
} else {
for (int i = 0; i < Server.list.size(); i++) {
PrintStream out = new PrintStream(Server.list.get(i).getOutputStream());
out.println("echo:" + string);
}
}
System.out.println("It comes from client:" + string);
}
}
close();
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void close(){
for (int i = 0; i < Server.list.size(); i++) {
try {
Server.list.get(i).close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//Server.list.remove(index)
}
}