`
tianting_wx
  • 浏览: 42676 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Socket异常与MINA异常

    博客分类:
  • mina
阅读更多

Socket异常

客户端异常

  • java.net.ConnectException: Connection refused: connect。

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

  • java.net.SocketException: Socket is closed

常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。

  • java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)

第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。 

  • java.net.SocketException: Broken pipe。

抛出SocketExcepton:Connect reset by peer:Socket write error后,如果再继续写数据则抛出该异常

(暂时还没有测出来)

  • java.net.BindException:Address already in use: JVM_Bind。

该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决这个问题。

  • java.net.SocketException: Socket is closed

(同客户端) 

  • java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)

(同客户端) 

  • java.net.SocketException: Broken pipe。

抛出SocketExcepton:Connect reset by peer:Socket write error后,如果再继续写数据则抛出该异常

(暂时还没有测出来)

 

MINA异常

MINA简化的Socket编程中各种复杂的异常处理,其受查异常只有4种,其他都为运行时异常

  1. ProtocolCodecException
  2. ProtocolEncoderException extends ProtocolCodecException
  3. ProtocolDecoderException extends ProtocolCodecException
  4. RecoverableProtocolDecoderException extends ProtocolDecoderException

客户端异常

  • 找不到主机或端口统一抛【RuntimeIoException】

其中在找不到主机的情况下抛 - java.net.ConnectException: Connection timed out

找不到端口的情况下抛 - java.net.ConnectException: Connection refused

 

服务器端异常

  • 端口被占用不抛异常

 

 

 

分享到:
评论

相关推荐

    Mina+Socket通信

    本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic Application Networking API”)是Apache软件基金会的一个开源项目,它为开发者提供了一...

    java客户端socket与mina服务端通信

    Java客户端Socket与Mina服务端通信是网络编程中常见的应用场景,尤其在开发分布式系统或实时数据传输时。这里我们将深入探讨这两个技术,并了解如何通过它们建立保持长连接的通信。 首先,Socket是Java中用于实现...

    Android-MinaSocket一款基于Mina的Socket长连接库

    6. **封装与易用性**:`Android-MinaSocket` 对Mina进行了封装,为Android开发者提供更友好的API,降低了使用门槛。 在实际使用`Android-MinaSocket` 时,开发者需要注意以下几点: - **连接管理**:保持长连接...

    Mina Socket 源代码

    **Mina Socket 源代码解析** Mina Socket 是 Apache Mina 项目的一部分,它是一个高性能、可扩展的网络通信框架。Mina 提供了一种简单的方式来构建网络应用,如服务器和客户端,支持多种协议,如 TCP/IP 和 UDP。在...

    socket mina测试框架

    Socket Mina测试框架是一个强大的网络通信应用框架,主要用于简化Java应用程序与远程服务器之间的通信。它提供了高度可扩展和高性能的I/O处理模型,使得开发者能够更专注于业务逻辑,而不是底层的网络实现细节。Mina...

    mina 服务器socket客服端发消息

    在Java开发中,Mina(Java Minimal ...在实际应用中,可能还需要考虑异常处理、心跳机制、多线程处理、消息序列化与反序列化等问题。Mina提供的API非常灵活,可以根据需求进行扩展和定制,以满足更复杂的应用场景。

    基于 MINA 的 TLS/SSL NIO Socket 实现(二)

    在本篇博文中,我们将深入探讨如何利用Apache MINA库实现基于TLS/SSL的NIO(非阻塞I/O)Socket通信。MINA是一个高度可扩展的网络应用框架,广泛用于构建高性能、高并发的网络应用程序,如服务器端的TCP和UDP服务。...

    MinaDemo.zip SpringBoot集成Socket通讯

    现在我们来详细探讨如何在SpringBoot项目中集成Mina进行Socket通讯,并结合myBatis进行数据交互。 首先,我们需要在SpringBoot项目中引入Mina的相关依赖。在`pom.xml`文件中添加Mina的依赖项,例如: ```xml ...

    MINA2 教程 socket

    在这个"MINA2 教程 socket"中,我们将探讨如何使用MINA2来实现服务器与客户端之间的通信,并且支持同时在线连接,以及如何利用`newFixedThreadPool`线程池来优化处理并发连接。 1. **MINA2基本概念**: MINA2的...

    基于Android开发MINA框架使用详解

    - MINA提供了Socket和Datagram接口,分别对应TCP和UDP通信,支持自定义过滤器链,方便对数据进行处理和解析。 2. **MINA与Android集成** - 在Android项目中引入MINA依赖:你需要在build.gradle文件中添加MINA的...

    Mina Server调试工具

    1. **连接管理**:允许用户连接到运行中的Mina服务器,通过输入服务器的IP地址和端口号,实现与远程服务器的实时通信。 2. **会话跟踪**:能够追踪服务器上的各个会话,查看会话状态、读写数据以及相关的事件记录,...

    mina连接 mina心跳连接 mina断线重连

    在Mina中,连接是指客户端与服务端之间建立的通信链路。它支持多种传输协议,如TCP/IP(Socket)、UDP(Datagram)等。Mina提供了一种事件驱动的模型,通过IoSession接口来管理连接,包括读写数据、添加监听器、关闭...

    mina socket 代码

    MinA Socket是Apache软件基金会下的一个开源项目,全称为“MINA (Multi-purpose Infrastructure for Network Applications)”,它提供了一个高性能、可伸缩的网络应用程序框架,用于开发基于TCP/IP和UDP/IP协议的...

    mina传文件案例,客户端加服务端

    《minafileserver:基于Socket与Mina的文件传输实践》 在IT行业中,网络通信是不可或缺的一部分,尤其是在分布式系统和互联网应用中。Apache Mina是一个轻量级、高性能的网络应用框架,它简化了网络编程,尤其是TCP...

    使用MINA实现长连接

    1. **Session:** 表示一个网络连接,它是MINA中的基本概念,包含了与远程客户端的连接状态和相关的数据传输信息。 2. **IoHandler:** 是MINA的核心接口,定义了处理网络事件的方法,如连接建立、数据读写、连接...

    Mina通信Demo

    在Android开发中,Mina可以帮助开发者构建TCP/IP和UDP网络应用,尤其适用于实现复杂的服务器与客户端间的通信。本Demo将展示如何在Android手机端使用Mina进行通信,让我们一起深入探讨这个过程。 **1. Mina框架介绍...

    apache mina实例免费下载

    MINA的目标是为Java开发者提供一个统一的API,无论底层网络通信是基于套接字(Socket)还是数据报(Datagram)。 Apache MINA的核心概念包括事件驱动、非阻塞I/O和过滤器链。非阻塞I/O允许在单个线程中处理多个连接...

    apache mina-spring 服务端程序

    通过这个项目,开发者可以学习到如何将Mina的异步I/O能力与Spring的容器管理及依赖注入机制结合,构建出健壮且易于维护的网络服务端程序。这包括理解Mina的事件模型、Spring的bean管理和网络编程的最佳实践。同时,...

    Android平台MINA框架使用详细解析

    同时,MINA还提供了异常处理机制,当网络异常发生时,会触发相应的事件,开发者可以据此进行错误恢复或重连操作。 在Android Studio环境下开发MINA应用,需要注意Android的多线程模型和资源管理。由于Android主线程...

    Mina 2.0快速入门与源码解析

    ### Mina 2.0快速入门与源码解析 #### Mina 2.0 快速入门 Mina 2.0 是一个基于Java NIO技术的高效、可伸缩的网络通信框架,广泛应用于服务器端开发。Mina 2.0 的设计目标是为开发者提供一个易于使用的API,使得...

Global site tag (gtag.js) - Google Analytics