`
lixiongzhi_m
  • 浏览: 62369 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

关于网络通信编程中的几种异常

阅读更多
      第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后),如果再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭所有的网络连接,其次是要检测对方的关闭连接操作,发现对方关闭连接后自己也要关闭该连接。
分享到:
评论

相关推荐

    Visual C++网络通信编程实用案例精选

    在Visual C++中进行网络通信编程,主要涉及到以下几个关键知识点: 1. Winsock库:这是微软提供的用于网络通信的API,它实现了Berkeley Sockets接口,使得C++开发者可以方便地进行TCP/IP通信。你需要理解Winsock的...

    Visual+C++网络通信编程实用案例精选》配套源码

    网络通信编程是计算机科学中的一个重要领域,它涉及如何通过网络在不同计算机之间交换数据。C++作为一门强大的系统级编程语言,非常适合用于开发这样的应用。在C++中实现网络通信通常涉及以下几个核心概念: 1. **...

    《Visual C++网络通信编程实用案例精选》配套源码

    《Visual C++网络通信编程实用案例精选》是一本...通过对这些源码的深入学习和实践,开发者不仅可以提升网络通信编程能力,还能掌握Visual C++在现代软件开发中的应用,这对于提升职业技能和解决实际问题非常有帮助。

    visual c++网络通信编程

    在网络通信编程中,通常有两种类型的socket:流式(TCP)和数据报(UDP)。TCP提供了一种可靠的、面向连接的通信方式,而UDP则是一种无连接的、不可靠的通信方式。聊天程序通常会使用TCP,因为它能确保数据的完整性...

    《VC++网络通信编程实例案例精选》光盘源代码

    《VC++网络通信编程实例案例精选》是一本深入探讨如何使用VC++进行网络通信编程的专业书籍。这本书通过实例的方式,让读者能够理解并掌握网络通信编程的核心技术。光盘源代码包含了书中第三部分的所有实例,为读者...

    《VC++网络通信编程实例案例精选》源代码

    网络通信编程主要涉及以下几个关键知识点: 1. **套接字编程**:套接字是网络通信的基础,是进程间通信的一种方式。在VC++中,通常使用Winsock库来实现套接字编程,包括TCP(传输控制协议)和UDP(用户数据报协议)...

    vb2005 第5章 网络通信编程实例

    在VB2005中,网络通信编程是一个关键领域,它允许应用程序通过互联网与其他设备或服务进行交互。本章将深入探讨如何利用VB2005实现这一功能,包括发送和接收数据、创建客户端和服务器应用程序,以及处理网络连接的...

    《VC++网络通信编程实例案例精选》光盘源代码 第二部分

    在网络通信编程中,VC++可以用于创建高性能的服务器端和客户端应用程序,支持TCP/IP、UDP等多种网络协议。 网络通信编程的核心在于理解和运用网络协议。TCP(传输控制协议)是一种面向连接的协议,提供可靠的数据...

    Visual+C++网络通信编程实用案例精选:TP31...

    《Visual+C++网络通信编程实用案例精选:TP31...》这一资料主要涵盖了使用Microsoft的Visual C++进行网络通信编程的实践案例。在C++的世界里,网络通信是实现分布式系统、客户端-服务器架构以及互联网应用的关键技术...

    UNIX网络编程 卷2:进程间通信书中源码

    它包括以下几种主要方式: 1. **管道(Pipe)**:一种半双工通信方式,数据只能单向流动,两个进程通过共享内存区域实现数据传递。 2. **有名管道(FIFO)**:与普通管道相似,但具有文件名,允许不相关联的进程...

    WinPcap库文件包 网络通信编程用

    WinPcap库文件包是网络通信编程中不可或缺的工具,尤其对于那些需要深入网络底层进行数据包捕获、分析和过滤的应用来说。WinPcap,全称为Windows Packet Capture,是微软Windows平台上的一种开源的网络数据包捕获和...

    应用SOCKET实现网络通信

    SOCKET编程是一种常见的网络通信方式,它允许两个程序间进行数据传输。SOCKET是实现网络通信的基石,是计算机网络通信中最核心的技术之一。SOCKET编程主要涉及客户端和服务器端,服务器端通过SOCKET监听来自客户端的...

    网络编程之高效编程

    本主题“网络编程之高效编程”深入探讨了如何优化网络通信、TCP协议以及开发过程中的各种细节,旨在帮助开发者实现更快速、更稳定、更可靠的网络应用。 首先,我们来关注网络通信优化。在网络编程中,数据传输的...

    C#网络应用编程(第3版)源代码

    在C#网络应用编程中,有几个核心的知识点是必须掌握的: 1. **基础网络概念**:理解TCP/IP协议栈,包括网络层、传输层、应用层等各个层次的功能,以及HTTP、FTP、SMTP等常见应用协议的工作原理。 2. **C#网络编程...

    vb网络通信协议分析与应用实现

    《VB网络通信协议分析与应用实现》一书深入浅出地探讨了VB(Visual Basic)在构建网络通信系统中的应用,结合实例源码,为读者提供了丰富的实践指导。该书主要涉及以下几个关键知识点: 1. **网络通信基础**:首先...

    unp unix网络编程

    《unp unix网络编程》是关于Unix系统下网络编程的经典之作,主要涵盖了网络通信的各种基础知识、原理和技术。这本书深入解析了TCP/IP协议栈的工作机制,提供了丰富的实例代码,旨在帮助开发者理解和实现网络应用。...

    C++网络编程聊天

    在IT行业中,网络编程是构建分布式系统和网络应用的基础,而C++作为一款强大的编程语言,也常被用于网络通信的实现。本项目名为"C++网络编程聊天",旨在通过socket编程技术创建一个简单的聊天应用,包括服务器端和...

    c#与vb.net网络通信开发实战(含源代码)

    《C#与VB.NET网络通信开发实战》是一本深度探讨如何使用这两种编程语言进行网络通信技术的实践指南。书中的内容涵盖了从基础理论到实际应用的方方面面,旨在帮助开发者掌握在网络环境中实现通信的关键技能。 首先,...

    vc++网络高级编程及源码

    这本书将详细讲解Winsock的使用,包括TCP/IP协议栈、套接字API以及相关的网络通信模型。 首先,书中会介绍网络编程的基本概念,如IP地址、端口号、套接字类型(流式SOCK_STREAM和数据报SOCK_DGRAM)等。接着,会...

    面向对象网络编程电子书pdf版

    9. 错误处理与异常处理:网络通信中难免会遇到错误,面向对象编程提供了异常处理机制,可以优雅地捕获和处理这些问题,保证程序的健壮性。 10. 网络服务框架:如Java的Java EE、Python的Twisted或Node.js等,它们...

Global site tag (gtag.js) - Google Analytics