本文实例为大家分享了java基于C/S结构实现多线程聊天室的具体代码,供大家参考,具体内容如下
主要实现的功能:
服务器端建立ServerSocket阻塞监听来自客户端的Socket连接,并为之开辟一个新的线程
读取来自该连接的数据,广播每一个客户端数据,这里简单地使用一个链表保存所有来自客户端的所有Socket连接
客户端连接上服务器端后主要有两个线程在工作:
主线程:不断获取键盘的输入并写入该Socket中传输给服务器
副线程:不断从服务器Socket流中读取传来的数据,打印到屏幕上。
服务器端代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.ServerSocket;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class MyServer {
public static ArrayList socketlist = new ArrayList();
private static String port ;
public static void main(String[] args) throws IOException
{
//弹出一个对话框输入端口号