`
- 浏览:
446699 次
- 性别:
- 来自:
上海
-
- public
class ChatServer {
- private
static
final
int PORT =
8888;
- private
static List<Socket> list =
new ArrayList<Socket>();
- private ExecutorService exec;
- private ServerSocket server;
- public
static
void main(String[] args) {
- new ChatServer();
- }
- public ChatServer() {
- try {
- server = new ServerSocket(PORT);
- exec = Executors.newCachedThreadPool();
- System.out.println("服务器已启动!");
- Socket client = null;
- while (true) {
- client = server.accept();
- list.add(client);
- exec.execute(new ChatTask(client));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- static
class ChatTask
implements Runnable {
- private Socket socket;
- private BufferedReader br;
- private PrintWriter pw;
- private String msg;
- public ChatTask(Socket socket)
throws IOException {
- this.socket = socket;
- br = new BufferedReader(new InputStreamReader(socket
- .getInputStream()));
- msg = "【" +
this.socket.getInetAddress() +
"】进入聊天室!当前聊天室有【"
- + list.size() + "】人";
- sendMessage();
- }
- public
void run() {
- try {
- while ((msg = br.readLine()) !=
null) {
- if (msg.trim().equals("bye")) {
- list.remove(socket);
- br.close();
- pw.close();
- msg = "【" + socket.getInetAddress() +
"】离开聊天室!当前聊天室有【"
- + list.size() + "】人";
- socket.close();
- sendMessage();
- break;
- } else {
- msg = "【" + socket.getInetAddress() +
"】说:" + msg;
- sendMessage();
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
-
-
- private
void sendMessage()
throws IOException {
- System.out.println(msg);
- for (Socket client : list) {
- pw = new PrintWriter(client.getOutputStream(),
true);
- pw.println(msg);
- }
- }
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
java socket服务端
自己写的Java多线程Socket服务端,可以接收网络调试助手或者其它客户端发来的数据
java socket 服务端,sping
socket的客户端与服务端,通过开多线程与通信
socket TCP服务端客户端实现 客户端发请求,服务端接受后返回大写
java版的socket,包含的服务端和客户端,实现两者连接和数据通讯
java写的异步socket服务端源代码,包括一些指令操作! 开发异步服务端的时候可以借鉴一下。 只有一个java文件,就完成异步服务端的功能。 不要错过哦,10分的资源分贵是贵点,但是真的值。
该文档详细描述如何实现高并发编程和运用Socket编程 Socket原理、计算机工作机制、文档包含整个实例源码。详细介绍了整个项目流程
java编写socket服务端和客户端给予cmpp3.0
基于netty框架编写的socket服务器
基于myeclipse的socket通讯服务端
实现了java socket编程基于tcp/ip协议的简单服务端,客户端通信,用于发送报文,接收解析报文。
java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。
JAVA实现的一个简单的Socket服务端代码,配合手机控制器调试用
socket分为socketserver和socketclient,socketserver是一个简单的建立长连接后等待接收数据,socketclient请求建立与服务端连接,连接建立以后通过servlet发起通信。 服务端直接用application执行; 客户端部署到...
JAVA服务器端应用Socket线程池,代码简练实用,仅作技术交流,勿用于商业用途.
java_socket服务端和客户端编程.doc
java_socket服务端和客户端编程.pdf
java 客户端服务端通信 socket