社区
Java SE
帖子详情
如何用socket与多线程实现在服务器端并发处理多客户端的请求?
hxhazx
2013-11-14 06:11:25
本人对socket不是很熟,
现在的需求是:
客户端能够登录到服务器上去对数据进行增删改查及退出一系列操作;但多个客户端可以同进登录,如果它们并发操作,那么服务器端是不是应该用多线程,给每个客户分一个独立的线程,但不知道在服务器端应该怎么写代码实现各个线程之间的独立!
一个客户端一旦连上,只要它不退出,这个线程不应该结束!
...全文
947
2
打赏
收藏
如何用socket与多线程实现在服务器端并发处理多客户端的请求?
本人对socket不是很熟, 现在的需求是: 客户端能够登录到服务器上去对数据进行增删改查及退出一系列操作;但多个客户端可以同进登录,如果它们并发操作,那么服务器端是不是应该用多线程,给每个客户分一个独立的线程,但不知道在服务器端应该怎么写代码实现各个线程之间的独立! 一个客户端一旦连上,只要它不退出,这个线程不应该结束!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hxhazx
2013-11-19
打赏
举报
回复
我现在自己整出了一个解决的办法,比较粗陋,莫见笑: 主线程中用一个ServerSocket的accept()方法来对所有客户端发来的请求进行全部接收; 从接收得到的socket中读取客户ip地址信息,以此ip为依据判断之前该客户端是否已建立了与服务器的连接,如果之前还未建立,那么就在服务器端重开一个线程,并将此socket传入,线程中拿到这个socket之后在其内部进行相应的处理,该线程随后会被存入一个Map中,其以ip地址为键,线程对象为值; 下次如果此客户端再发来请求,就可以在此Map中直接找到处理它的线程来对其进行处理; 线程中在需要等待客户端信息才能继续的地方,暂时用wait来令其等待,当主线程又接到此客户端的一个请求信息之后,再将该线程唤醒(Notify); 当客户端断开连接时(服务器端会收到一个标记量),服务器端的线程运行结束,并将Map中的对应项移除。
develop_design_level
2013-11-14
打赏
举报
回复
给你个地址,去看看吧。
http://kanpiaoxue.iteye.com/admin/blogs/1956800
可以在这个基础上面修改一下。 推荐你使用netty来写你的服务器端,它的性能非常优秀。 然后你还是看看《Java网络编程》这本书吧。
Linux下基于
socket
多线程
并发
通信的
实现
Linux下基于
socket
多线程
并发
通信的
实现
,论文,pdf文档
C#
SOCKET
客户端
与主机通讯
多线程
实现
C#
SOCKET
客户端
与主机通讯
多线程
实现
,先启动服务器再启动
客户端
基于Java
Socket
多
客户端
并发
通信聊天程序的设计与
实现
基于Java
Socket
多
客户端
并发
通信聊天程序的设计与
实现
C#
Socket
客户端
服务端封装 支持多连接
处理
Tasks
多线程
队列
处理
大数据拆分包
处理
Socket
客户端
代码封装、服务端代码封装,让使用
Socket
更简单。 同时服务端支持超过
客户端
连接(测试超过1万个同时连接稳定运行),Tasks
多线程
队列
处理
大数据拆分包
处理
基于TCP/IP的
Socket
多线程
通信(服务器和
客户端
)
基于TCP/IP的
Socket
多线程
通信(服务器和
客户端
),需要的请下载看看。
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章