部署在tomcat容器下的web应用怎么和远程Applet应用双向通信

fzm1159 2009-11-06 03:11:57
项目需要我的web应用能和远程机器上的applet应用建立双向通信的长连接,web应用可以主动向远程applet应用发送数据,也可以被动接收远程Applet发送的数据,希望各位高人能指点一二,不胜感激!补充:这个applet应用用于采集终端硬件的数据,已经完成,不能改了。
...全文
244 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzm1159 2009-11-09
  • 打赏
  • 举报
回复
11楼的方法是Socket编程过程,我现在困惑的是Socket程序怎么在tomcat中运行并保持长连接。因为看了需求,是我的web应用进入主界面之后,首先主动向applet发起请求,然后是applet不定期回传数据,所以我想把socket服务器端放在applet这一边,这样的话web系统就得运行socket客户端,这里不知道怎么实现,网上找了好久也没有这样的例子,哪位能提供一个启动方案,最好是配置和代码,不胜感激。
老张-AI 2009-11-09
  • 打赏
  • 举报
回复
用socket应该可以解决吧
网上搜搜很多例子的
先看看11楼的方法
顶顶
fzm1159 2009-11-09
  • 打赏
  • 举报
回复
谢谢各位,先试下上面兄弟的办法
怒风in南京 2009-11-09
  • 打赏
  • 举报
回复
Socket长连接和TOCMAT没什么关系的,建议看下SOCKET基础,SOCKET建立连接后不主动断开连接就不会断开,SOCKET开一个通道TOMCAT的HTTP开一个通道相互不影响,放在TOMCAT中间启动只不过可以共享内存。

socket服务器端当然是放TOMCAT端的,不然你怎么知道applet的IP?,肯定是由applet发起连接请求的。
dozyworker 2009-11-07
  • 打赏
  • 举报
回复
你这个问题跟我的很相像,我是把监听类随servlet启动,用双线程管理读写,进程间通信,来解决这个问题。目前只是初步调试出,楼主可以参看一下我的监听socket的方法。

http://topic.csdn.net/u/20091107/11/f0cc790c-c1ff-4d47-a59e-7c04156921e0.html?32584#replyachor
cangwu_lee 2009-11-06
  • 打赏
  • 举报
回复
兩邊各一個SERVER和CLIENT,處理起來複雜點,但能滿足要求。
sxjkk 2009-11-06
  • 打赏
  • 举报
回复
1.服务端当然可以主动发送数据给客户端,只要之间的socket对象还在
2.监听的端口只要不和其他计算机进程服务用的端口冲突都可以,不要大于65535
3.accept会阻塞线程,如果用主线程跑当然会阻塞主线程,如果主线程有其他用途,就new一个新的线程当服务端
bayougeng 2009-11-06
  • 打赏
  • 举报
回复
全双工还是半双工?
fzm1159 2009-11-06
  • 打赏
  • 举报
回复
先谢谢各位,如果用socket,我这边建立服务器端,对方applet应用发起连接并连接成功,那我作为服务器端可以主动发送数据吗?还有,我作为Socket服务器端的话监听哪个端口?8080?另外就是accept方法会不会阻塞主线程?我说的有点乱,想到哪说到哪,其实我对socket也不是很熟悉。希望能得到各位更多的宝贵意见。
sxjkk 2009-11-06
  • 打赏
  • 举报
回复
当然可以,看哪一端做服务端,哪一段做客户端
1.SOCKET编程就可以解决,楼主想要我可以给你示例代码
2.webservice,soap协议,就是可以远程进行进程间通信(两个JAVA虚拟机通信),网上有很多简单的实例。建议用成熟的SOAP协议实现的JAR包。通常有AXIS、XFIRE等,建议使用XFIRE,因为配置简单些,网上资料也很多
怒风in南京 2009-11-06
  • 打赏
  • 举报
回复
socket,做个自启动servlet里面启动socket监听,applet作为连接发起方和servlet里面启动的服务建立长连接,这样就满足你需求了
fzm1159 2009-11-06
  • 打赏
  • 举报
回复
对,实际上就是这样一个情况,对方对j2ee不是很了解,他提议用socket,可socket需要独立启动,我实在不明白怎么tomcat下面再起一个serversocket或socket;另外socket好像也是请求/应答模式吧?
海诗美妆 2009-11-06
  • 打赏
  • 举报
回复
类似于打电话那样,真正的双向通信功能,以tomcat+applet很难实现。

applet应该不能跑服务器功能,只能是让applet定时向tomcat发送请求,返回相应的状态结果,再由applet解析即可。

这种形势类似于MMS流媒体。
fzm1159 2009-11-06
  • 打赏
  • 举报
回复
怪我没说清楚,已经写好的数据采集系统没办法更改了,但对方可以加交互程序,我现在的问题就是不知道怎么才能和对方的Applet应用进行双向长连接通信。再次请教!
怒风in南京 2009-11-06
  • 打赏
  • 举报
回复
已经完成,不能改了?那他有现有对外通讯方式吗,如果没有又不能改怎么弄

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧