第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后),如果再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭所有的网络连接,其次是要检测对方的关闭连接操作,发现对方关闭连接后自己也要关闭该连接。
文章写的不错,转自http://blog.csdn.net/allanking666/archive/2009/12/16/5020864.aspx
分享到:
相关推荐
Java+Socket+网络编程常见异常
网络编程中常见的错误包括连接失败、数据传输中断等。Python的socket模块提供了丰富的异常类,如`ConnectionRefusedError`、`Timeout`等,通过捕获这些异常,可以实现健壮的错误处理逻辑。 六、多线程和异步I/O ...
7. **异常处理**:Socket编程中,网络异常如连接中断、数据传输错误等是常见的问题。因此,编写健壮的Socket程序需要良好的异常处理机制,以确保程序在遇到问题时能够恢复或优雅地关闭。 8. **数据编码与解码**:在...
在Socket编程中,网络异常、数据传输异常等情况很常见,因此需要进行适当的错误处理。例如,连接超时、网络中断、数据读写异常等都需要捕获并适当地处理。 6. **多线程在Socket编程中的应用**: 当服务器需要同时...
**Socket编程中的异常处理**:在网络通信中,可能会遇到各种异常情况,如连接中断、数据包丢失等,因此编写健壮的Socket程序需要良好的错误处理机制。 **多线程和多进程**:在实际应用中,服务器可能需要同时处理多...
《网络Socket编程指南》是一本深入探讨网络通信技术的书籍,尤其关注于Socket编程这一核心领域。Socket,作为网络通信的基础接口,是实现进程间、机器间通信的关键工具。本书旨在帮助开发者理解和掌握如何利用Socket...
"socket网络(UDP协议编程)"这个标题明确指出了我们要讨论的核心内容——使用套接字(socket)进行网络编程,并且聚焦在用户数据报协议(UDP)上。UDP是一种无连接的、不可靠的传输层协议,与TCP(传输控制协议)...
9. **异常处理**:在Socket编程中,网络中断、超时等问题很常见,因此需要编写适当的错误处理代码。 10. **多线程与并发处理**:在服务器端,为了处理多个客户端的并发连接,通常会用到多线程或异步I/O模型,如...
在Socket编程中,常见的异常包括SocketException、IOException等,需要正确捕获并处理这些异常,确保程序的健壮性。 八、安全通信 为了保证数据传输的安全,可以使用SSL/TLS协议进行加密。C#的SslStream类可以与...
本文将深入探讨VC++(Visual C++)环境下如何进行Socket编程,包括基本概念、API使用、常见问题以及实战技巧。 首先,Socket是操作系统提供的一种通信机制,它允许不同计算机间的进程通过网络进行数据交换。在...
在IT领域,网络编程是构建分布式系统和网络应用的基础,而C++ Socket编程则是实现这一目标的重要技术之一。本文将深入探讨C++ Socket网络编程的相关知识点,帮助开发者理解和掌握其核心概念、步骤以及常见问题。 ...
《超市收银管理系统---基于socket...通过这个项目,学习者不仅能掌握socket网络编程的基本概念和技巧,还能了解到实际系统开发中的一些常见问题和解决方案。这对于提升IT从业者的综合技能和解决问题的能力大有裨益。
C语言Socket编程是网络编程中的一项重要技术,它允许程序之间通过网络进行通信。Socket编程通常涉及到了解套接字(Socket)的基本概念、网络理论、各种网络编程函数以及如何处理IP地址等问题。以下是从提供的文件...
本教程主要聚焦于C#中的Socket编程,它是网络通信的基础,允许应用程序通过Internet协议(如TCP/IP)进行数据交换。 1. **Socket基础知识** Socket是操作系统提供的一个接口,用于实现网络上的进程间通信(IPC)。...
在Socket编程中,网络异常、数据包丢失等问题是常见的,因此需要编写健壮的错误处理代码,如异常捕获、超时重试等。 综上所述,Socket网络编程是构建互联网应用程序的基础,它提供了灵活、低级别的通信机制,开发者...
在Java中,Socket编程提供了TCP和UDP两种主要的传输层协议接口,每种协议都有其特点和适用场景。 TCP(Transmission Control Protocol)是一种面向连接、可靠的传输协议。它确保了数据包在发送过程中不会丢失、重复...
本资源“C# Socket网络编程精华篇共16页.pdf.zip”显然是一个关于C# Socket编程的教程压缩包,包含16页的精华内容。虽然具体细节无法在当前环境下查看,但我们可以根据已知信息来讨论C# Socket网络编程的关键知识点...
分析这些文件可以提供更具体的socket编程技巧,如错误处理、异步I/O、多线程或多进程并发等。 在实际应用中,socket网络编程还涉及到许多其他方面,如连接管理(连接建立、保持和断开)、数据编码解码(如JSON或...
Socket编程需要考虑网络异常,如连接中断、数据传输错误等,需要编写相应的错误处理代码。 10. **网络安全**: 在实际应用中,Socket通信还需要考虑安全性问题,如加密传输、身份验证等,常见的解决方案有SSL/TLS...
Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在本示例中,我们探讨的是如何使用Socket进行程序间的交互。Socket可以被看作是两台计算机之间的通信端点,允许它们通过网络交换数据。下面...