首页>代码>java swing基于socket开发控制台版多人聊天室实例>/ChatRoom/src/com/demo/ServiceSoketServerListenerThread.java
package com.demo;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTextArea;

public class ServiceSoketServerListenerThread extends Thread{
	//监听端口
	private int port;
	//是否开启
	private  ServerSocket serverSocket=null;
	//多线程下操作list
	public  static List<User> socketList=new ArrayList<User>();
	private JTextArea textField;
	public ServiceSoketServerListenerThread(int port,JTextArea textField) {
		this.port = port;
		this.textField=textField;
	}
	
	@Override
	public void run() {
		try {
			 serverSocket = new ServerSocket(port);
			 System.out.println("服务器开启");
				while (true) {
					Socket socket = serverSocket.accept();
					User user = new User();
					user.setSocket(socket);
					//synchronized 同步   也可不加   
					synchronized (socketList) {
					   socketList.add(user);
					}
					System.out.println("有客户连接");
					new SocketData2(socket, textField).start();
				}
		} catch (IOException e) {
			System.out.println("服务器关闭");
//			e.printStackTrace();
		}
	}
		// 转发消息
	public static void send(String msg) {
		synchronized (socketList) {
			for (User user : socketList) {
				try {
					user.getSocket().getOutputStream().write((msg).getBytes());
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
	}
	/*	for (Socket socket : socketList) {
			try {
				socket.getOutputStream().write((msg).getBytes());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			
			try {
				DataOutputStream dis=new DataOutputStream(socket.getOutputStream());
				dis.writeUTF("服务器:"+textField_2.getText());
			} catch (IOException e1) {
				socketList.remove(socket);
				System.out.println("对方退出了!我从List里面去掉了!");
				e1.printStackTrace();
			}
		}*/
	}

	public void stopService() {
		try {
			serverSocket.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static List<User> getSocketlist() {
		return socketList;
	}

}
最近下载更多
jxd2007kl  LV2 2023年11月29日
谢小饭_  LV8 2022年1月21日
9843637  LV9 2021年12月15日
tangjj7260  LV18 2021年12月10日
dfz12345  LV4 2021年12月8日
 LV2 2021年6月16日
miner22  LV9 2021年5月27日
chat511  LV3 2021年5月12日
15508061020  LV1 2020年9月3日
BruceQ  LV14 2020年7月15日
最近浏览更多
zeng1206  LV5 2023年12月28日
jxd2007kl  LV2 2023年11月29日
jidea  LV2 2023年11月29日
阿布屋脊  LV7 2023年8月15日
fuyouou  LV5 2023年6月29日
CL200228  LV4 2023年5月4日
17771013609  LV4 2023年4月12日
sslhss 2022年11月30日
暂无贡献等级
2543317781 2022年11月26日
暂无贡献等级
罗清晨  LV11 2022年9月28日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友