精华内容
下载资源
问答
  • 网络异常

    2013-12-24 11:50:02
    关于网络异常方面的建议 第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与...
    关于网络异常方面的建议
    第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决这个问题。

    第2个异常是java.net.ConnectException: Connection refused: connect。该异常发生在客户端进行new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听。出现该问题,首先检查客户端的ip和port是否写错了,如果正确则从客户端ping一下服务器看是否能ping通,如果能ping通(服务服务器端把ping禁掉则需要另外的办法),则看在服务器端的监听指定端口的程序是否启动,这个肯定能解决这个问题。

    第3个异常是java.net.SocketException: Socket is closed,该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。

    第4个异常是java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)。该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。

    第5个异常是java.net.SocketException: Broken pipe。该异常在客户端和服务器均有可能发生。在第4个异常的第一种情况中(也就是抛出SocketExcepton:Connect reset by peer:Socket write error后),如果再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭所有的网络连接,其次是要检测对方的关闭连接操作,发现对方关闭连接后自己也要关闭该连接。
    展开全文
  • 检测网络异常

    2019-03-28 17:02:43
    在main.js中 window.onoffline = function() { // onoffline断网,ononline网络连接 weui.toast('网络异常,请检查网络!', {className: 'toast-no-success'}) }

    在main.js中

    window.onoffline = function() { // onoffline断网,ononline网络连接
      weui.toast('网络异常,请检查网络!', {className: 'toast-no-success'})
    }
    
    展开全文
  • 异常测试之Socket网络异常

    千次阅读 2018-12-14 15:44:07
    本文由作者张雨授权网易云社区发布。...随着项目组微服务化的演变进程,服务间通过http接口访问的场景也越来越多,本文站在测试的角度,对与socket的网络异常测试场景进行了一下整理和模拟方法的实践,抛砖引玉...

    本文由作者张雨授权网易云社区发布。


    前言

    不知道大家在测试的过程中有没有发现关于异常测试这样一个特点: 无论是分散在功能测试中的异常用例还是规模相对较大的专项异常测试中,异常测试的用例占比虽然不大但是对于挖掘问题却扮演着十分重要的角色。

    随着项目组微服务化的演变进程,服务间通过http接口访问的场景也越来越多,本文站在测试的角度,对与socket的网络异常测试场景进行了一下整理和模拟方法的实践,抛砖引玉,欢迎大家提出更多更好的方法。

    常见Socket网络异常类型

    异常Exception类型原因场景
    connect timed outjava.net.SocketTimeoutExceptionSocket TCP建立连接时三次握手超时,如果建立连接的时间超过了设置的Socket连接的超时时间触发TimeoutException异常网络延迟、网络断开、网卡异常、服务端性能、客户端异常等等
    Read timed outjava.net.SocketTimeoutException如果输入缓冲队列RecvQ中没有数据,read操作会一直阻塞而挂起线程,直到有新的数据到来并且已经超过了设置的读超时时间时触发客户端或者服务端进程崩溃、对方机器突然重启、网络断开等
    Connection refusedjava.net.ConnectException访问服务端IP不通或者端口服务没有启用网络异常、服务down掉等
    Connection reset or connection reset by peerjava.net.SocketException客户端或者服务端其中一方退出,但退出时并未关闭该连接,另一方仍然在从连接中读数据则抛出该异常(发送的第一个数据包引发该异常Connect reset by peer服务端并发连接数达到负载主动断开连接;客户端关闭但服务端仍读写数据

    网络异常场景构造实验

    通过上面对于异常场景原理的了解, 我们通过一些linux网络小工具结合tcp的连接建立流程依次制造异常,从而更好的了解上面这些异常~

    服务端: tomcat server 8080
    客户端: curl
    工具: iptables 、tcpkill
    国际惯例,tcp三次握手非高清大图

    image

    1. connect timed out

    • 客户端通过iptables 构造异常

    这里统一从出口进行流量的限制,大家也可以自己试下从入口方向做限制。

    iptables -A OUTPUT -p tcp --syn --dport 8080 -j DROP
    • 客户端访问服务端

    root@asdfd-10796:~# curl http://115.238.125.169:8080 -v* About to connect() to 115.238.125.169 port 8080 (#0)*   Trying 115.238.125.169...
    
    
    
    * Connection timed out* couldn't connect to host
    * Closing connection #0
    curl: (7) couldn't connect to host
    • 客户端查看socket状态:SYN_SENT

    root@asdfd-10796:~# netstat -antp | grep 8080tcp        0      1 115.238.125.172:59038   115.238.125.169:8080    SYN_SENT    3692/curl

    2. Read timed out

    • 客户端通过iptables 构造异常

    iptables -A OUTPUT -p tcp -m state --state ESTABLISHED  --dport 8080 -j DROP
    • 客户端访问服务端

    root@asdfd-10796:~# curl http://115.238.125.169:8080 -v* About to connect() to 115.238.125.169 port 8080 (#0)*   Trying 115.238.125.169...* connected* Connected to 115.238.125.169 (115.238.125.169) port 8080 (#0)> GET / HTTP/1.1> User-Agent: curl/7.26.0> Host: 115.238.125.169:8080> Accept: */*>
    * additional stuff not fine transfer.c:1037: 0 0* additional stuff not fine transfer.c:1037: 0 0* additional stuff not fine transfer.c:1037: 0 0
    
    ......................* Recv failure: Connection timed out* Closing connection #0
    curl: (56) Recv failure: Connection timed out
    • 客户端查看socket状态:ESTABLISHED

    root@asdfd-10796:~# netstat -antp | grep 8080tcp        0     84 115.238.125.172:58986   115.238.125.169:8080    ESTABLISHED 3671/curl
    • 客户端抓包情况

    当tcp连接完成syn-》syn ack后进入ESTABLISHED状态, 而由于iptables的配置导致服务端之后返回的tcp报文被drop掉,服务端多次重传后无ack返回,返回read time out

    image

    3. Connection refused

    • 客户端通过iptables 构造异常

    iptables -A OUTPUT -p tcp  --dport 8080 -j REJECT
    • 客户端访问服务端

    root@asdfd-10796:~# curl http://115.238.125.169:8080 -v* About to connect() to 115.238.125.169 port 8080 (#0)*   Trying 115.238.125.169...
    * Connection refused
    * couldn't connect to host
    * Closing connection #0
    curl: (7) couldn't connect to host
    • 客户端查看socket状态:FIN_WAIT1

    root@asdfd-10796:~# netstat -antp | grep 8080tcp        0     85 115.238.125.172:58986   115.238.125.169:8080    FIN_WAIT1   -
    • 服务端抓包情况

      由于iptables的配置,客户端主动reject掉服务端返回的syn ack

    image

    4. Connection reset by peer or connection reset

    • 服务端通过tcpkill命令构造异常

    tcpkill是一个网络分析工具集dsniff中的一个小工具,可用来轻量级断开网络连接

    tcpkill -i eth2 port 8080
    • 客户端访问服务端

    testroot@asdfd-10796:~# curl http://115.238.125.169:8080/test2 -v* About to connect() to 115.238.125.169 port 8080 (#0)*   Trying 115.238.125.169...* connected* Connected to 115.238.125.169 (115.238.125.169) port 8080 (#0)> GET /test2 HTTP/1.1> User-Agent: curl/7.26.0> Host: 115.238.125.169:8080> Accept: */*>
    * additional stuff not fine transfer.c:1037: 0 0* Recv failure: Connection reset by peer* Closing connection #0
    curl: (56) Recv failure: Connection reset by peer
    • 服务端查看tcpkill日志

    root@asdfd-10649:~# tcpkill -i eth2 port 8080tcpkill: listening on eth2 [port 8080]115.238.125.172:60030 > 115.238.125.169:8080: R 3022358001:3022358001(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022358230:3022358230(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022358688:3022358688(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022358001:3022358001(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022358230:3022358230(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022358688:3022358688(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916106:1694916106(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916333:1694916333(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916787:1694916787(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916106:1694916106(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916333:1694916333(0) win 0115.238.125.169:8080 > 115.238.125.172:60030: R 1694916787:1694916787(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022360124:3022360124(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022360386:3022360386(0) win 0115.238.125.172:60030 > 115.238.125.169:8080: R 3022360910:3022360910(0) win 0
    • 客户端抓包情况

    服务端在tcp连接建立后主动down掉连接

    image

    总结

    其实socket的异常不仅限于次如Broken pipe、 Too many open files等,这些更多的是在压力并发测试过程中容易出现,本文介绍的这些异常更多的适用于功能性异常测试中,是发现bug的好帮手,大家可以在日常的测试中实验一下,会有意外收获哦 


    免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

    更多网易技术、产品、运营经验分享请访问网易云社区


    相关文章:
    【推荐】 金融事业部QA培训体系
    【推荐】 LESS+to+MCSS
    【推荐】 微服务化之无状态化与容器化

    展开全文
  • vue 网络异常提示

    千次阅读 2020-07-25 10:58:49
    但是有一些情况除外,那就是网络异常  当有这些网络异常的时候,这些请求就没有发送到后端,所以后端是不能够发送这些异常信息的,这个时候我们就需要在前端给用户这些提示  在一般的正规项目中,我们一般都会在...

     在一般的项目中,我们的大部分异常都是由后端发送过来的,前端只需要打印这些异常就行了。但是有一些情况除外,那就是网络异常
     当有这些网络异常的时候,这些请求就没有发送到后端,所以后端是不能够发送这些异常信息的,这个时候我们就需要在前端给用户这些提示
     在一般的正规项目中,我们一般都会在前端写一个请求拦截器,拦截我们所有的请求,这个这些请求添加token,并对所有的这些请求进行处理
    像这些网络异常,这个错误是在response返回的err中的,我们只需要在拦截器的response中,处理就行了

    request.interceptors.response.use(
        (response, promise) => {
            if(response.data.status == 4001){
                wx.redirectTo({
                    url:'/login/login'
                })
            }
            return promise.resolve(response.data)
        },
        (err, promise) => {
            console.log(err)
            if (err.status == 0) {
                wx.showToast({
                    title: "网络连接异常",
                    icon: 'none',
                    duration: 1500
                })
                return
            } else if (err.status == 1) {
                wx.showToast({
                    title: "网络连接超时",
                    icon: 'none',
                    duration: 1500
                })
                return
            } else {
                if (err.response.data.message) {
                    wx.showToast({
                        title: err.response.data.message,
                        icon: 'none',
                        duration: 1500
                    })
                    return promise.resolve()
                } else {
                    wx.showToast({
                        title: "请求数据失败,请稍后再试",
                        icon: 'none',
                        duration: 1500
                    })
                    return
                }
            };
    
        }
    )
    
    展开全文
  • 网络异常的分类

    2019-10-22 10:59:35
    参考《网络异常算法研究》王子玉 异常检测所关注的异常是指那些造成网络流量特征改变的恶意行为。换句话说,如SQL注入,计算机病毒,系统权限提升,缓冲区溢出之类的恶意行为并不在异常检测的考虑范围内。异常检测所...
  • 网易云网络异常

    2020-06-30 23:41:33
    网易云网络异常因为你使用了dai li上网,网易云音乐其实是一个基于网页的软件,软件联网,页面显示都是通过调用系统自带的浏览器IE完成的。 解决方法: 1.按住win+r,输入cmd,然后在输入命令:ipconfig/flushdns,回车...
  • 网易云音乐显示网络异常

    万次阅读 2019-08-30 16:27:49
    1、问题描述 网易云音乐网络异常 1.1软件 win10操作系统 1.2猜测原因 是我使用了vpn的缘故,导致网络连接异常 2、解决办法 重新再次打开PC端的【网易云音乐】客户端软件即可! ...
  • 电脑重置网络可以解决网络异常问题,修复网络链接不畅问题; 步骤 1,首先在屏幕左下角的开始 单点击右键, 在弹出的菜单中xz选择 “Windows Power Shell (管理员) (A)” 打开命令提示符。 2,然后在弹出的命令符...
  • 如题,如何设置网络超时,或网络异常,并且提示用户异常,哪位大侠,给个详细代码,感激不进
  • Android 网络异常

    万次阅读 2019-08-07 21:42:04
    目录前言一、UnknownHostException1、网络断开验证2、DNS 服务器意外挂掉验证3、DNS 服务器故障验证4、所需诊断信息二、ConnectTimeoutException三、SocketTimeoutException1、子错误 - 读超时2、子错误 - SSL 握手...
  • 机器学习在网络异常检测中的应用

    千次阅读 2019-04-29 23:30:06
    网络异常检测,即在网络数据中发现不符合预期的异常行为。 基于机器学习的网络异常检测,需要首先根据网络中的正常报文建立正常行为的模型,之后的数据包匹配正常行为模型,不符合的即为异常行为。 基于机器学习的...
  • 网络异常模拟测试方法

    千次阅读 2019-02-20 14:22:02
    1.网络异常的分类 在系统的运行过程中,可能会遇到各种各样的网络问题,其中主要可能出现的问题有 网络延迟:当网络信息流过大时,可能导致设备反应缓慢,造成数据传输延迟; 网路掉包:网路掉包是在数据传输的...
  • app里面的网络请求是通过协程+okhttp来实现的,但是没有做网络异常处理(域名无法解析、502错误等等一系列),导致程序奔溃 2尝试 因为app基本上做好了,外面有大几十个地方调用,然后又有不同...
  • 小程序网络异常N多解决方法

    千次阅读 2021-01-29 16:59:27
    同志们在做小程序商城项目的时候,或多或少都会出现“网络异常”相关BUG,小编今天列一下众多解决方法,希望能帮到大家! 1、为什么真机预览总是提示“网络异常”_LaiKeTui商城系统 · 专注… 为什么真机预览总是...
  • 模拟网络异常测试

    千次阅读 2017-01-22 11:15:23
    线上网络会遇到各种问题,比如断网、网络延迟、丢包等,...所以为了模拟这些情 况,可以使用tc进行网络异常的模拟,对待测系统进行针对性的压测。 该命令将 eth0 网卡的传输设置为延迟 100 毫秒发送 tc qdisc ad
  • 网络异常那些事

    2015-12-22 10:48:25
    java里经常爆出的网络异常都是啥原因引起来得呢?其实java本身没做什么,只是如实上报了系统反馈的异常。 1.host unreachable,network unreachable 两个异常出现的原因是因为路由设置有问题: a. 当向某一个...
  • java网络异常

    2010-09-15 16:14:00
    我这里有关于网络异常方面的建议,发上去大家学习: 第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的...
  • 相关文章: Android RxJava+Retrofit网络异常、状态码统一处理
  • Android RxJava+Retrofit 网络异常捕获、状态码统一处理前言近来使用RxJava+Retrofit进行开发,在项目中遇到这样一个需求,联网请求获得数据异常时,需要将对应的Message和StatusCode进行获得并展示,比如: ...
  • 网络异常处理

    千次阅读 2011-04-17 00:41:00
    对端网络异常, 这时候可以从读写时发现 2. 用户层写buff满 3. 用户主动关闭 为了保证更少的暴露接口给用户, 经过自己的推敲, 发现当出错时, 走正常的通知模式, 抛出一个error给用户回调, 用户看情况清理自己的...
  • 通过 xhr.timeout 来设置超时时间,然后调用超时回调函数 const xhr = new XMLHttpRequest(); //设置请求超时时间 如果在设置时间内 服务端还没有返回数据 ...//网络异常回调(比如掉线) xhr.onerror = functio

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,405
精华内容 9,362
关键字:

网络异常