社区
Apache
帖子详情
Tomcat怎么实现客户端之间通信
shangmingchao
2014-06-24 10:29:21
第一次发帖,真的想请大神们帮一下:我本来基于Myeclipse+Tomcat利用Servlet技术实现了我的服务器与客户端的HTTP通信,客户端每次发HTTP请求(包括数据)给服务器的一个Servlet,服务器处理完把结果返回给客户端。但是,现在一个客户端需要发给另一个客户端数据,该怎么办啊,用什么技术可以实现。希望详细点说一下,先谢了。
...全文
957
3
打赏
收藏
Tomcat怎么实现客户端之间通信
第一次发帖,真的想请大神们帮一下:我本来基于Myeclipse+Tomcat利用Servlet技术实现了我的服务器与客户端的HTTP通信,客户端每次发HTTP请求(包括数据)给服务器的一个Servlet,服务器处理完把结果返回给客户端。但是,现在一个客户端需要发给另一个客户端数据,该怎么办啊,用什么技术可以实现。希望详细点说一下,先谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_35357150
2017-01-16
打赏
举报
回复
在长连接的状态下:Server可以会为每个Client生成一个socket,这时你可以从每个socket获得输出流out并绑定一个标记,比如给A客户端对应的out绑定为A,并放到一个Map中;当一个客户端要给A客户端发消息时,Server会解析你发的消息知道你发给A (在这之前要先规定通信协议,比如用@A:XXXX;表示要发送给A客户端,内容是XXXX; ),到MAP中找到A客户端对应的输出流out,这样就可以完成一对一发送消息,如果是变量Map中每个out,则是群发; 如果不是在长连接情况下,即一次请求一次响应,因为这种连接是无状态的Server是无法知道也不关心客户端的状态,server不会主动向Client发起请求;只能客户端直接连接客户端直接发送消息; 我就知道这些,希望对你有用
shangmingchao
2014-06-30
打赏
举报
回复
说的对,套接字和Ajax都行,但我现在又不想再重新做,只能在服务器数据库单开一个表来存消息,再处理了。。。
melonboy312
2014-06-27
打赏
举报
回复
两个办法, 1.轮询。客户端定时向服务器请求是否有自己的数据,当某个客户端a发送数据给b时,服务器把数据存下来,记录a要把这个数据发给b,当b来轮询的时候,就把这个数据作为响应返回给b。 优点:实现简单。 缺点:有延迟。 2.长连接。客户端a使用ajax发送不超时的请求给服务器,服务器在收到请求后,将此请求挂起,直到有客户端b向服务器请求要发送数据给a时,唤醒a之前的请求,并把数据返回给a。 优点:没有延迟。 缺点:实现比较复杂,服务器容易压力过大。 你的这个问题,其实本质上就是http协议是无状态无连接的协议,服务器是不知道有客户端存在的,你可以搜索下相关内容。 对了html5的websocket可以完美解决这个问题,不过我没用过,你可以试试。
基于http协议
实现
netty
客户端
与
tomcat
之间
的
通信
平常我们都是使用netty搭建
客户端
以及搭建netty服务端
实现
通信
,其实我们也可以使用netty搭建基于http协议的
客户端
实现
与
tomcat
的
通信
。 代码案例: 服务端代码,本质就是一个对外发布的controller package com.syx.controller; import com.syx.entity.User; import com.syx.service.UserService; import org.springframework.beans.factory.annotation.
android
客户端
与部署到
tomcat
的servlet服务器
之间
实现
http
通信
博主目前小白,为了完成这个踩到不少地雷,在此处记录下,可能错误忘记了,以后想起来再更新。服务器端:public class Servlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) thr
Tomcat
源码学习一
Tomcat
实现
基石Socket
Tomcat
源码学习一
Tomcat
实现
基石Socket
Tomcat
是什么?相信做Java Web的都应该用过
Tomcat
,它是Web轻量级的应用服务器,或者说是一个Servlet容器。
WebSocket-服务器
客户端
双向
通信
轮询浏览器以指定的时间间隔向服务器发出HTTP请求,服务器实时返回数据给浏览器。长轮询浏览器发出ajax请求,服务器端接收到请求后,会阻塞请求直到有数据或者超时才返回。SSEserver-sent-event:服务器发送事件SSE是在服务器和
客户端
之间
打开一个单向通道,服务器通向
客户端
。服务器响应的不再是一次性的数据包,而是类型的数据流信息。服务器有数据变更时,将数据流式传输到
客户端
。WebSocket是一种在基于TCP连接上进行全双工
通信
的协议。
JAVA集成WebSocket,
实现
服务器与
客户端
握手
WebSocket
实现
服务器与
客户端
握手 自学的WebSocket途中遇到很多坑,希望需要使用的朋友可以少走弯路, 使用的环境:
tomcat
7.0,mysql,springMvc,spring,Mybatis 主要使用2个jar包 这2个jar包在
tomcat
7的 lib文件夹里面有 catalina.jar ...
Apache
24,916
社区成员
16,538
社区内容
发帖
与我相关
我的任务
Apache
Web 开发 Apache
复制链接
扫一扫
分享
社区描述
Web 开发 Apache
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章