目标
一个项目中,首先创建一个独立于主线程的 ServerThread :负责监听 localhost:8080 端口,该线程每次接收到传来的 Socket ,独立出一个单独的 Socket 线程,负责接受和回复信息。
主线程生成多个 Client 对象,分别向 localhost:8080 通过 socket 发送消息。从而模拟客户端——服务器通信。
知识点
- Socket 网络通信
- 多线程
- Stream
Code
- Client.java
package socketDemo;
// 省略 import
public class Client {
private Socket socket;
public Client(){
try{
this.socket = new Socket("localhost", 8080);
}catch (IOException e){
e.printStackTrace();
}
}
public Client(String host, int port){
try{
this.socket = new Socket(host, port);
}catch (IOException e){
e.printStackTrace();
}
}
public void send(String info){
try{
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.print(info);
writer.flush();
System.out.println("Client: send message: " + info);
socket.shutdownOutput();
BufferedReader reader