1
2
3
4
5
6
7
8
 
public class ClientMain {
    public static void main(String[] args) {
        ClientNode clientNode = new ClientNode();
        clientNode.startClient();
    }
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.IOException;
import java.net.Socket;
 
public class ClientNode {
    private static final String IP = "127.0.0.1";
    private static final int    PORT = 12345;
    
    private Socket socket;
    
    public ClientNode() {
        try {
            this.socket = new Socket(IP, PORT);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
    }
    
    public void startClient() {
        Thread th = new Thread(new ClientWriter(socket));
        Thread th2 = new Thread(new ClientReader(socket));
        th.start();
        th2.start();
        try {
            th.join();
            th2.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
 
public class ClientReader implements Runnable {
    private Socket socket;
    private BufferedReader br;
    
    public ClientReader(Socket socket) {
        this.socket = socket;
        try {
            this.br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        String readLine;
        try {
            while((readLine = br.readLine()) != null) {
                System.out.println(readLine);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
 
}
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
 
public class ClientWriter implements Runnable {
    private Socket socket;
    private BufferedWriter bw;
    
    public ClientWriter(Socket socket) {
        this.socket = socket;
        try {
            this.bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    @Override
    public void run() {
        // TODO Auto-generated method stub
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        
        String readLine;
        try {
            while((readLine = input.readLine()) != null) {
                
                bw.write(readLine);
                bw.newLine();
                bw.flush();
                
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
}
 
cs

1
2
3
4
5
6
7
8
9
 
public class EchoServerMain {
    
    public static void main(String[] args) {
        ServerAccepter server = new ServerAccepter();
        server.readyServer();
    }
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
 
public class ServerAccepter {
    private final int PORT = 12345;
    private ServerSocket serverSocket;
    private ExecutorService threadPool;
    
    public ServerAccepter() {
        try {
            serverSocket = new ServerSocket(PORT);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        this.threadPool = Executors.newFixedThreadPool(10);
        
    }
    
    public void readyServer() {
        try {
            while(true) {
 
                Socket socket = serverSocket.accept();
                this.threadPool.submit(new ServerNode(socket));
 
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        this.threadPool.shutdown();
    }
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.net.Socket;
 
public class ServerNode implements Runnable {
    private Socket socket;
    
    public ServerNode(Socket socket) {
        this.socket = socket;
    }
    
    
    @Override
    public void run() {
        // TODO Auto-generated method stub
        Thread th = new Thread(new ServerReader(socket));
        th.start();
        try {
            th.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
}
 
cs

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class ServerReader implements Runnable {
private BufferedReader br;
private BufferedWriter bw;
public ServerReader(Socket socket) {
try {
this.br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
this.bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
String readLine;
try {
while((readLine = br.readLine()) != null) {
System.out.println(readLine);
bw.write(readLine);
bw.newLine();
bw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
 
public class ServerWriter implements Runnable {
    private BufferedReader br;
    
    public ServerWriter(Socket socket) {
        try {
            this.br =  new BufferedReader(new InputStreamReader( socket.getInputStream()));
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
 
    @Override
    public void run() {
        // TODO Auto-generated method stub
        String readLine;
        try {
            while((readLine = br.readLine()) != null) {
                
                System.out.println(readLine);
                
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
}
 
cs


+ Recent posts