思路:用Swing包创建一个简单的聊天的面板,实现与服务端的通信,关键是将聊天面板发送的Msg传到服务端的Recieve线程中,将服务端Send线程中的Msg发送到聊天面板中显示,因此我选择了用构造方法传参的形式(其实也可以使用static方式)在线程中传入Msg
这段代码只能实现一个服务端同一时间跟多个客户端中的一个聊天,不能实现一个服务端同时跟多个客户端进行群聊
服务端代码:
/**
* 实现多个客户端对应一个服务端进行通信
*
* @author wangjue
*
*/
public class MyServer {
public static void main(String[] args) {
MyServer ms = new MyServer();
ms.initServer(10010);
}
public void initServer(int port) {
try {
ServerSocket server = new ServerSocket(port);
System.out.println("服务端正等待客户端连接...");
// 表示可以连接多个客户端
while (true) {
Socket socket = server.accept();
System.out.println("已经有一个客户端连接上来了...");
// 启动发消息的线程
new Thread(new SendThread(socket)).start();
//启动收消息的线程
new Thread(new RecieveThread(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 接收客户端不断传来消息的线程
*
* @author wangjue
*
*/
public class RecieveThread implements Runnable {
private Socket socket;
public RecieveThread(Socket socket) {
this.socket = socket;
}
@Override
public void