社区
Java SE
帖子详情
如何用socket与多线程实现在服务器端并发处理多客户端的请求?
hxhazx
2013-11-14 06:11:25
本人对socket不是很熟,
现在的需求是:
客户端能够登录到服务器上去对数据进行增删改查及退出一系列操作;但多个客户端可以同进登录,如果它们并发操作,那么服务器端是不是应该用多线程,给每个客户分一个独立的线程,但不知道在服务器端应该怎么写代码实现各个线程之间的独立!
一个客户端一旦连上,只要它不退出,这个线程不应该结束!
...全文
986
2
打赏
收藏
如何用socket与多线程实现在服务器端并发处理多客户端的请求?
本人对socket不是很熟, 现在的需求是: 客户端能够登录到服务器上去对数据进行增删改查及退出一系列操作;但多个客户端可以同进登录,如果它们并发操作,那么服务器端是不是应该用多线程,给每个客户分一个独立的线程,但不知道在服务器端应该怎么写代码实现各个线程之间的独立! 一个客户端一旦连上,只要它不退出,这个线程不应该结束!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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网络编程》这本书吧。
什么是网络编程
本文详细介绍了IP地址的组成与配置,包括网络地址和主机地址的概念。讲解了查看IP和测试网络通畅的方法,如`ipconfig`和`ping`。深入探讨了DNS域名解析的作用,并梳理了网络通信协议的五层模型。重点讨论了Java中的
Socket
编程,包括基于TCP协议的
Socket
编程步骤,展示了如何在
客户端
和
服务器端
进行数据传输,包括字符串和对象的传递。同时,提到了基于UDP协议的
Socket
编程,利用`DatagramPacket`和`Datagram
Socket
`进行数据包的发送和接收。最后,文章讨论了服务器如何
处理
多
客户端
请求
,通过
多线程
实现
并发
处理
。
C++
SOCKET
多线程
网络编程
实现
多个
客户端
与服务器通信
本文介绍了使用C++进行
SOCKET
网络编程,通过
多线程
技术,
实现
服务器对多个
客户端
连接的
并发
处理
。
服务器端
为每个
客户端
创建单独的服务线程,接收并计算
客户端
发送的数学算式,再将结果回传。
客户端
则包含两个线程,一负责用户输入,一负责接收并显示服务器的响应。
Java
Socket
(六) 使用
多线程
实现
多
客户端
的通信
本文介绍了如何使用Java的
Socket
和
多线程
来
实现
一个服务器与多个
客户端
之间的通信。服务器通过Server
Socket
的accept()方法等待
客户端
连接,每个连接都在独立的线程上进行对话。
客户端
创建
Socket
连接到服务器,
服务器端
会显示连接的
客户端
数量和IP地址。通过这种方式,服务器可以同时
处理
来自多个
客户端
的
请求
。
C++
SOCKET
多线程
编程
实现
聊天小程序
本文围绕C++
SOCKET
多线程
编程
实现
单播聊天室展开。先介绍网络协议要素与对等性原则,类比说明TCP/IP体系结构,阐述
SOCKET
概念及分类。接着给出单播聊天室
实现
思路,展示Server端和Client端代码要点。总结指出多
客户端
连接时消息回复按接收顺序,因未用线程池,服务端无法指定消息接收方。
Socket
通信-accept+
多线程
本文详细介绍了Windows环境下TCP和UDP的
Socket
通信
实现
方法,并利用C++11
多线程
技术来
处理
多
客户端
并发
请求
。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章