java的socket通信检查掉线问题
答案:3 悬赏:70 手机版
解决时间 2021-04-05 06:57
- 提问者网友:动次大次蹦擦擦
- 2021-04-04 19:43
最近写了一个使用socket进行通信的android小程序,服务器端使用了简单的java application程序,遇到一个问题,就是当手机端的网络断掉之后,android和服务器的socket都掉线了,但是两边的程序却都处在read方法的阻塞中,并没有抛出异常,经过测试发现,在android端在掉线之后使用socket输出流的write方法(这里使用了持续发送心跳包的方法)会抛出异常,从而可以检测掉掉线,苦逼的是服务器端在掉线之后也是用write方法却始终不抛出异常,不知道哪位大神有什么好方法没,求教!!!!!!!!!!
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-04-04 20:29
socket 的 setSoTimeout 设置超时时间 单位是毫秒。超过设置时间抛出SocketTimeoutException 异常。
捕获SocketTimeoutException异常关闭连接就行了。
捕获SocketTimeoutException异常关闭连接就行了。
全部回答
- 1楼网友:从此江山别
- 2021-04-04 21:05
需要做一个socket通信程序,服务器端为vc做的,我需要用java做个客户端,对方要求的通信格式如下: 消息头: 第1~4字节 用字节数表示的消息头的长度 第5~8字节 用字节数表示的消息内容长度 第9字节 服务类型:1为响应,2为请求 第10~11字节 源系统代号 第12~13字节 目的系统代号 消息内容: xml格式 小弟之前没有做过这样的程序,实在是一点头绪都没有,那位高手能给点提示 java应该如何组装消息 采用那种方式发送给服务器端 先谢谢啦! 回复人:sureyor() ( 五级(中级)) 信誉:100 2007-7-13 10:38:53 得分:30 ? 第一步 充分理解socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述ip地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以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方法获得网络连接输入,同时返回一个iutputstream对象实例,。 . getoutputstream方法连接的另一端将得到输入,同时返回一个outputstream对象实例。 注意:其中getinputstream和getoutputstream方法均会产生一个ioexception,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。 2.如何开发一个server-client模型的程序 开发原理: 服务器,使用serversocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
- 2楼网友:轻熟杀无赦
- 2021-04-04 20:39
用
socket.getLocalSocketAddress().toString().charAt(0)!='/'
如果表达式为true则代表异常掉线。但是对正常下线无效。你仍然需要发送正常下线的消息。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |