Java tcp服务器框架 以及一个简单命令行聊天的测试例子

本文介绍了一个基于TCP协议的聊天服务器的实现,包括线程池、RSAAES加密配置、Log4j日志记录等特性。提供了ServerManager和Session类的具体应用实例,并详细解释了客户端与服务器之间的交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tcp服务器,线程池,RSA AES加密(可配置自定义加密或者不加密),Log4j记录日志。

下载到http://download.youkuaiyun.com/source/1508422 吧,没有下载分,这里没有上传的地方。

 

欢迎各种批评、建议。有问题邮件联系:zyongsheng83@163.com

如需ZYSLib.jar源码,同样邮件联系。

 

简要解释:

Server类:

initAdditionalTimingTasks方法用于初始化一些定时任务,这里用不到。

 

服务器端用的Session类:

方法connectionInterrupted用于处理连接异常断开,这里断开之后清除Session信息,不做其他操作。

disposeCommand用于处理客户端发来的命令。

 

命令的定义类:

这里只定义了3个消息号:登录,欢迎消息,聊天。

消息号必须为5为整型。90000以后为框架预留消息号,不要使用。

 

客户端类:

方法onInput处理命令行输入。

onConnected处理建立连接成功的操作。

disposeCommand同样是客户端处理消息的方法。

客户端启动按以下步骤:初始化客户端对象,连接,开始命令行读取线程。

客户端初始化的第三个参数是消息加密类,这里使用的是框架默认的RSA DES加密。

 

服务器配置文件server.properties:

# Server listening port
Port=9998
# The socket data char set from client
ClientCharSet=utf-8
# Use the implementing class from server.core.ConnSession
SessionClassName=test.ClientSession
# String used to separate the parameters 
SocketDataSeperator=:
# If Encrypt in transfer enabled
SessionEncryptEnabled=true
# Class name used to Encrypt, must implementing from SessionEncrypt
# and only used when SessionEncryptEnabled is true
SessionEncryptClassName=zys.net.tcp.SessionEncryptRSA_AES
# The delay to send heartbeat to client to make the socket available
HeartbeatDelay=30000
设置的分别为:服务器端口,与客户端传输消息字符集,服务器Session处理类,消息分隔符,是否启用加密,加密类,心跳线程间隔(心跳线程就是定时给每个客户端发一个消息,放置socket长时间不活跃造成的假死现象,同时检测客户端异常断开)

 

log4j的配置文件就不说了。

 

局限:目前传输局限于字符串消息,因为项目中还没用到字节传输,所以也懒得改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值