package cn.chat;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* 在线聊天室,服务端
* @author Chill Lyn
*
*/
public class Chat {
private static CopyOnWriteArrayList<Channel> all = new CopyOnWriteArrayList<Channel>();
public static void main(String[] args) throws IOException {
System.out.println("server:");
// 1.指定端口 使用ServerSocket创建服务器
ServerSocket server = new ServerSocket(9000);
while (true) {
// 2.阻塞式等待连接accept
Socket client = server.accept();
System.out.println("one connection!");
Channel c = new Channel(client);
all.add(c);
new Thread(c).start();
}
}
/**
* 一个客户端一个channel
* @author Chill Lyn
*
*/
static class Channel implements Runnable {
private Socket client;
private DataInputStream dis;
private DataOutputStream dos;
private boolean isRunning;
private String name;
public Channel(Socket client) throws IOException {
super();
this.client = client;
dis = new DataInputStream(client.getInputStream());
dos = new DataOutputStream(client.getOutputStream());
isRunning = true;
name = receive();
this.send("欢迎来到聊天室!");
sendOthers(name + "进入了聊天室", true);
}
// 1.接收消息
Java_网络编程_TCP编程模拟在线聊天室
最新推荐文章于 2020-07-13 16:29:36 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)