在网上找到通信异常的总结,觉得不错,转录下来。。。
第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网络通信系统的研究与开发"涵盖了Java网络编程的多个方面,包括TCP/IP协议的理解、Java网络API的使用、系统架构设计、并发处理和安全性等方面的知识。通过深入学习这个项目,开发者不仅能提升网络...
Java网络通信系统是基于Java语言实现的用于网络间数据交换的应用程序。在Java中,网络通信主要依赖于Java的Socket编程和ServerSocket类,这两个核心类是Java提供的用于实现客户端/服务器模型通信的基础。本项目涵盖...
总结来说,Java多线程技术在网络通信系统中的应用包括了线程间通信的原理、多线程实现网络通信的原理、线程安全及同步控制的有效途径,以及网络通信编程中的Socket类实现。掌握这些技术要点,对于进行高效、稳定、...
总结起来,"JAVA网络通信系统的研究与开发"项目涵盖了Java网络编程的核心概念,包括网络连接、多线程、数据序列化、异常处理、文件I/O以及设计模式的应用。对于计算机专业的学生来说,这是一个极好的实践平台,有助...
总之,Java网络编程涵盖了Socket通信、多路复用、异常处理、连接管理等多个方面,开发者需要掌握这些基础知识,并结合实际需求选择合适的工具和框架,以构建高效、稳定的网络应用。对于进阶学习,可以深入研究NIO和...
Java网络通信是编程领域中的一个重要话题,特别是...以上就是根据提供的信息,对Java网络通信聊天软件的关键知识点的总结。在实际项目中,还需要考虑安全性、性能优化、用户体验等多个方面,确保聊天系统的稳定和高效。
《JAVA网络通信系统的研究与开发》是一篇深入探讨Java在构建网络通信系统中的应用的学术论文,配合完整的源代码和开题报告,为学习者提供了一个全面了解和实践的平台。该主题涵盖了许多重要的Java网络编程技术和原理...
Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程、I/O流、网络编程、反射技术、设计模式以及JVM等核心概念。以下是对这些知识点的详细说明: 一、...
在Java网络编程中,我们还需要了解异常处理、套接字选项、多路复用技术如Java NIO(非阻塞I/O)以及SSL/TLS安全通信等高级主题。此外,对于B/S架构,我们通常使用Servlet、JSP和相关框架(如Spring MVC)来开发Web...
总结,Java Socket网络五子棋项目涵盖了Java网络编程、多线程、游戏逻辑设计等多个方面,是学习和实践网络应用开发的好案例。通过阅读和分析源码,可以深入理解Java Socket通信以及游戏开发的细节,提升自己的编程...
Java的I/O库提供了丰富的类和方法用于文件操作、流处理和网络通信。Socket编程是Java进行网络通信的主要方式,支持TCP/IP协议。 六、多线程 Java内置了对多线程的支持,通过Thread类和Runnable接口可以创建并管理多...
掌握 JAVA 的 JDK 开发环境和系统配置,能够使用面向对象思想进行程序设计,掌握图形用户界面的设计方法,掌握 Applet 技术,掌握异常处理技术,了解线程机制、IO 流、网络通信技术等,并了解使用 JDBC、Java Bean、...
Java提供了Socket和ServerSocket类进行网络通信,可以创建客户端和服务端进行数据交换。此外,还可以使用URL和URLConnection进行HTTP请求。 八、反射与注解 反射机制允许在运行时动态地获取类的信息并操作类的对象...
11. **网络编程**:Socket编程是Java进行网络通信的基础,理解TCP和UDP协议的区别,以及ServerSocket和Socket类的使用。 12. **泛型**:泛型提高了代码的类型安全性和重用性,可以限制容器存储的元素类型。 13. **...
流式I/O允许数据以连续的方式读写,广泛应用于文件读写、网络通信等场景。 #### 图形界面编程 Java的图形界面编程主要通过AWT(Abstract Window Toolkit)和Swing两个组件库实现。AWT是Java早期的GUI工具包,而...
`IOException`是输入输出异常,处理I/O操作时,如读写文件或网络通信出现问题,会抛出此异常。 `NoSuchMethodException`表示尝试调用一个不存在的方法时抛出。例如,类中没有定义某个方法,而代码中尝试去调用它。 ...
此外,深入学习Java集合框架、异常处理、IO流、网络编程、设计模式等也是Java核心知识的重要组成部分。在面试中,这些知识点通常会被反复考察,因此掌握并能灵活运用这些知识是成为合格Java开发者的前提。
9. **IO流**:Java的IO流处理能力强大,包括字符流和字节流,支持读写文件、网络通信等操作。 10. **多线程**:Java支持多线程编程,通过`Thread`类或者实现`Runnable`接口创建线程。同步机制(如`synchronized`...
6. **输入/输出流**:Java的I/O系统支持处理文件、网络通信和其他数据源。InputStream、OutputStream、Reader、Writer以及NIO(非阻塞I/O)是重要的学习点。 7. **泛型**:泛型引入了类型参数的概念,增强了代码的...