javaweb能完成socket通信吗?

javaweb能完成socket通信吗?... javaweb能完成socket通信吗? 展开
 我来答
hanxiang1980
推荐于2017-09-10 · TA获得超过101个赞
知道答主
回答量:99
采纳率:0%
帮助的人:50.3万
展开全部
可以,在JSP或Servlet写Socket连接代码就可以,不过不建议这么做。如果控制不好很可能连累应用的稳定性。不知道是什么应用场景,感觉不应该这么设计。
追问
项目中需要和其他的服务器保持长连接的通信,有什么好的建议不?使用JNI调用C++的dll吗
追答
用以下方法可以较好的解决Socket性能和对Web应用的影响:
1、试试nio包吧SocketChanel,效率高一些,也不容易在高并发情况下影响稳定性,不过nio是基于缓存的,容易造成数据包异常,要做一些处理。
2、在web应用外面独立编写一个Socket应用,web通过和这个应用通讯完成原来写在页面的通讯代码,这样不容易因为网络问题造成意外影响。
3、如果如你所说,是一个不断的长连接,可以在tomcat或应用启动的时候就建立一些连接,并定期检查连接状态,或定期重新连接,周期不要太短。web中所有的socket通讯都由这个连接完成。
当然如果结合使用效果最好。
你说的方法和第二种方案是一个思路,但是有个问题,就是依赖本地代码,如果跨平台移植会麻烦些,但是也是个好的解决方案,如果写DLL的人水平比较好,还可以实现非阻塞通讯,就是方案1和方案二的结合。
sheat120
2012-03-13 · 超过11用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:19.7万
展开全部
以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。   重要的Socket API:   java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。   . Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。   . getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。   . getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。   注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiayutian0000
2012-03-14 · TA获得超过175个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:131万
展开全部
好像需要socket服务端代码和客户端代码...............都是可以使用javaBean写出来的吧》。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dd2693add
2012-03-13
知道答主
回答量:34
采纳率:0%
帮助的人:26万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式