socket判断对方断开连接

问题描述

我通过socket连接servlet,在servlet用了socket2.sendUrgentData(0xFF);判断客户端是否断开,在电脑手机模拟器上运行,连接的IP是localhost没问题,但把IP改成公网IP,servlet就出现问题了,报错如下:java.net.SocketException:Softwarecausedconnectionabort:sendatjava.net.PlainSocketImpl.socketSendUrgentData(NativeMethod)atjava.net.PlainSocketImpl.sendUrgentData(PlainSocketImpl.java:556)atjava.net.Socket.sendUrgentData(Socket.java:928)atimServers.GetMsgSocket2$getOrderThread.run(GetMsgSocket2.java:189)这是怎么会事呢?有哪位遇过吗?

解决方案

解决方案二:
不会吧
解决方案三:
引用1楼ubuntu520的回复:

不会吧

是啊,我也弄不懂是什么原因,郁闷!
解决方案四:
没人遇过这种奇怪的问题吗?
解决方案五:
socket2是服务器端建立的还是从客户端的连接中获得的呢?
解决方案六:
问题没有交代清楚啊。。
解决方案七:
没有碰到过这个问题
解决方案八:
路过,接分走人,哈哈
解决方案九:
引用4楼mailbomb的回复:

socket2是服务器端建立的还是从客户端的连接中获得的呢?

服务器端建立的,通过socket2.sendUrgentData(0xFF);检测客户端是否断开
解决方案十:
引用5楼youbin_的回复:

问题没有交代清楚啊。。

晕,我有点怀疑你懂不懂我在说什么
解决方案十一:
引用6楼ysy30040的回复:

没有碰到过这个问题

谢谢帮顶
解决方案十二:
学习

时间: 2024-11-01 10:09:39

socket判断对方断开连接的相关文章

[求助] socket通信.客户端怎样主动断开连接.

问题描述 如题,客户端怎样主动强制和服务器断开,调用socket.close()后服务器inputstream.read()无限循环得到空字符串服务器部分代码:privatevoidsocket(){ServerSocketss;try{ss=newServerSocket(9988);//等待连接客户端System.out.println("正在侦听");Sockets=ss.accept();System.out.println("-----------连接成功-----

文件传输-关于Socket通信问题 ,Sever和Client端如何相互判断对方中断以及终断

问题描述 关于Socket通信问题 ,Sever和Client端如何相互判断对方中断以及终断 一个手机做为Server端,其他多个手机做为Client端,用Socket建立连接,然后进行文件传输,怎么判断Server和Client端的中断以及终断? 解决方案 百度查查Soket心跳检测怎样做.http://blog.sina.com.cn/s/blog_a459dcf5010153m5.html 解决方案二: 初学者,没怎么看懂,谢谢!! 解决方案三: 数据小的消息相互发送与应答(降低流量),定

Java Socket 如何判断客户端断开

问题描述 我做了个多线程的服务器程序线程中等待客户端的消息部分代码如下:booleandone=clientRequest.isConnected();//判断客户端Socket是否连接while(done)//客户端是连接的{try{input=clientRequest.getInputStream();Binput=newBufferedInputStream(input);str=""+Binput.read();if(Binput.read()!=-1)//如果客户端有消息就

文件传输-关于C# socket传输中的连接问题

问题描述 关于C# socket传输中的连接问题 由于我初次编写网络传输这一块的代码,中间一些传输上这几道连接的地方不太明白. 现在我遇到的情景是这样的: 1.我用TCP协议传输文件至服务器, 2.客户端第一次发送文件信息等待回应, 3.服务器接收到消息后返回状态, 4.本地收到状态后开始传文件并等待传输完成回应, 5.传输完成后服务器发送完成状态回来客户端接收到整个过程就完成了. 现有服务器一台,公网IP,可以直接从任何电脑访问的那种, 我现在在服务器上写好了监听,监听收到的消息并判断,然后发

tcp-TCP断开连接为什么需要4次握手?3次不行吗?

问题描述 TCP断开连接为什么需要4次握手?3次不行吗? 在CSDN博客里找到一个普遍的解释:"这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送.但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了:但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭

关于B/S判断浏览器断开的问题讨论_javascript技巧

客户端通过脚本和服务器保持请求,每次请求刷新一个时间,服务器检查这个时间,如果发现时间超过预定,则可以判断该客户端浏览器已关闭.然后对进行相应得操作.如果你想知道是那个客户端浏览器关闭,可以把会话绑定到轮询对象中.长连接不是所有服务器都支持得,这种方式,比你的现实多了.我的个人看法.我首先同意这几种做法,它们也能实现这个需求,他们都通过客户端的轮询,更新服务器的最后访问时间,让服务器检测超时.我来谈谈我对这2种做法的理解 1 服务器端如何进行超时判断,启动一个后台线程进行定时轮询?循环检查每个s

qt-使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接

问题描述 使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接 5C cmd下使用telnet也是输入字符就断开连接电脑杀毒软件一直没启动,防火墙全部关闭,端口号10000然后写了个客户端,同样的问题,输入字符断开连接.楼下依次上图 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 输入字符a就出现了断开连接 下面上代码 解决方案六: chatsever.h #ifndef CHATSEVER_H#define CHATSEVER_H #inclu

PHP 在 Nginx 下主动断开连接 Connection Close 与 ignore

这两天弄个PHP调用 SVN 同步 update 多台服务器更新的程序,为了避免 commit 的时候不会被阻塞卡半天得想个办法只请求触发,而不需要等待程序 update 完成返回结果这样耗时太长,所以研究过了下如何让PHP主动断开连接的方法.搞了一下午,发现很多问题,还好最终还是弄出来了,主要是 Nginx 太坑.. 废话不多说,下面上代码: /** * 主动断开与客户端浏览器的连接 * 如果是 Nginx 服务器需要输出大于等于 fastcgi_buffer_size 缓存的数据才能即时输出

tcp-求网络大牛解决疑难杂症,为何断开连接后,不出现time_wait状态

问题描述 求网络大牛解决疑难杂症,为何断开连接后,不出现time_wait状态 我们都知道,tcp/ip协议断开连接是4次挥手,主动断开的一方,最后会进入time_wait状态,等待2MSL后变成CLOSED,但是我在本地做了一个php网页,代码逻辑就是先sleep,3秒钟然后输出几个字符,但是查看网络状态时,压根找不到time_wait的状态: 以下是通过natstat命令,查看到机器上的状态 1.在服务器sleep的时候,建立连接的双方都是ESTABLISHED 2.网页输出之后,大约过3秒