java网络在使用中,常出现错误信息如下:
1、EOFException
抛出此类异常,表示连接丢失,也就是说网络连接的另一端非正常关闭连接(可能是主机断电、网线出现故障等导致)
2、ConnectException:connection refused connect.
抛出此类异常,表示无法连接,也就是说当前主机不存在
3、SocketException:socket is closed.
抛出此类异常,表示连接正常关闭,也就是说另一端主动关闭连接
4、SocketException:connection reset.
抛出此类异常,表示一端关闭连接,而另一端此时在读数据
5、SocketException:connect reset by peer.
抛出此类异常,表示一端关闭连接,而另一端此时在发送数据
6、SocketException:broken pipe.
抛出此类异常,表示连接已关闭,但还继续使用(也就是读/写操作)此连接
7、BindException:address already in use
抛出此类异常,表示端口已经被占用
-----------------------------------
java classLoader、java thread、java I/O(NIO)和java socket。
一般来说,服务器设计大致分为三个阶段:
第一个阶段是连接器设计
第二个阶段是核心业务设计(严格来讲就是通用服务设计)
第三个阶段是数据设计
对于第一个阶段的设计,涉及到网络知识(阻塞式socket和非阻塞式socket)、通信模式(TCP/IP或者UDP)、网络管理(负载、连接状态等)、传输协议设计(特别与其他语言的交互)、I/O处理(bytes转成Object、Object转成bytes)等。有些方面可以靠网络硬件设备来解决。
对于第二个阶段的设计,主要涉及众多的相关领域的知识,如:
多线程的设计(参考《多线程设计模式》)、管理设计(参考JMX)、消息传输设计(参考JMS)、安全设计(参考java安全)、缓存设计(参考cache4j、JCS等开源项目)、资源池设计(数据库连接池等)、对象重用设计、命名空间设计(参考JNDI)、分布式设计(参考RMI)、组件设计等。
对于第三个阶段的设计,主要涉及的知识为数据库方面的知识,如:
事务处理、数据库建表设计、数据持久化设计等。
这里也比较局限化,并不是所有的业务场景都需要用到数据库,在此就是举例说明下,
第三个阶段就是在前两个阶段的基础上做相关的应用开发了。
最后是服务的部署:
包括JVM的参数优化、目录结构、批处理文件的编写。
网友评论