1 Socket 聊天室
Socket 聊天原理
建立 服务
等待连接
将建立的连接放在新的线程里
由于每个 客户端连接相互独立,所以他们之间无法通信
使用一个类对新建的客户端线程进行管理,然后实现相互通信管理类要做成
单例,保证唯一性,并通过服务类进行转发来实现客户端相互通信
项目使用说明
, 将 导入到 数据库
,将 项目导入到 ,配置 下运行。
修改 配置文件,改成修改成自己的环境
,将 项目导入到 ,配置 环境并编译运行。
java web 服务端
1.3.1 开启 socket 服务线程
使用 ! 方法中调用启动线程,并在 "# 配置自启动。就可以在
服务启动的时候启动 服务。
$!%&
!%##'&
!%#()(&
*++
!+!,-.!/%
!+!,0'.!1012 服务端3
!+!,4!$%
!+!,!56
!+!,0!67 年 月 日 下午 .6.7
!+*
4!!/!#!)(!8
!'!9!$!5:;0!<!=&
,1
4!!23!"!#'!8
**!101! 4>$!!4
"!=2323&**!开启线程
42?开启 服务…………………………?3&
**!在 ""! 下输入
**!!!
**!即可建立 连接
@
@
1.3.2 socket 服务监听线程(ServerListenerThread.java)
用于开启 服务,并进行监听客户端连接
客户端首次接入,传递自己的名称,格式“.+++A
将连接的客户端,传入到客户端管理类中。
$!%&
!%B4CD&
!%;1#'&
!%;4D&
!%&
!%&
!%#"$E1'F&
*++
!+!,-.!=%
!+!,0'.!1012 监听线程3
!+!,4!$%
!+!,!56
!+!,0!67 年 月 日 下午 .G.H
!+*
4!!=!#!!8
!<66&
,1
4!!423!8
**!101! 4>$!!4
4423&
!8
!!<!"!23&
**!循环监听连接
"!243!8
**!阻塞
!!<!23&
**!建立连接
**!在浏览器中输入:(.**.*
**!会弹出提示框,点击确定后断开连接
**E1'F"/$0$24!?有客户端连接到本机?3&
**!将 传递给新的线程每个 享受独立的连接
**!"!2323&**开启 线程
B4CD!!<!"!B4CD2"!;4D2
$;423!?4I>G?33&
$!!<!4&
$!!<!4&
J!22!<!=233K<43!8**接收到客户端数据
J2#1J2?.?3K<>38
!<!4$2#1J2?.?3L3&
42L?.连接到本机?3&
@
@
**23&**关闭输入流
!!<!"!2!3&
23&
/$$/$2323&
LL&
@
@!!2;1#'!3!8
**!101! 4>$!!
23&
@
@
@