欢迎来到天天文库
浏览记录
ID:50221097
大小:1.05 MB
页数:81页
时间:2020-03-12
《史上最全java socket通信.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、javasocket通信1.1简介2.2基本套接字1.TCP套接字1.TCP客户端2.TCP服务器端2.UDP套接字1.UDP客户端2.UDP服务器端3.3发送和接收数据1.信息编码1.基本整型2.字符串和文本3.成帧与解析4.构建和解析协议消息1.消息类VoteMsg展示了每条消息中的基本信息2.编码和解码类接口VoteMsgCoder3.基于文本的编码解码类VoteMsgTextCoder4.基于二进制的编码解码类VoteMsgBinCoder5.服务器中记录投票过程的服务类VoteService6.TCP
2、投票客户端类VoteClientTCP7.TCP投票服务器端类VoteServerTCP8.UDP投票客户端类VoteClientUDP9.UDP投票服务器端类VoteServerUDP4.4多任务处理1.一客户一线程2.线程池3.利用JDK提供的线程池javautilconcurrent包中来实现并行服务器4.阻塞和超时5.多接收者1.广播2.多播6.Keep-Alive机制7.发送和接收缓存区的大小8.消除缓冲延迟9.关闭连接5.4NIO1.Buffer详解2.流TCP信道详解3.Selector详解4.数
3、据报UDP信道1:简介Java语言从一开始就是为了让人们使用互联网而设计的,它为实现程序的相互通信提供了许多有用的抽象应用程序接口(API,ApplicationProgrammingInterface),这类应用程序接口被称为套接字(sockets)。信息(information)是指由程序创建和解释的字节序列。在计算机网络环境中,这些字节序列被称为分组报文(packets)。一组报文包括了网络用来完成工作的控制信息,有时还包括一些用户数据。用于定位分组报文目的地址的信息就是一个例子。路由器正是利用了这些控制
4、信息来实现对每个报文的转发。协议(protocol)相当于是相互通信的程序间达成的一种约定,它规定了分组报文的交换方式和它们包含的意义。一组协议规定了分组报文的结构(例如报文中的哪一部分表明了其目的地址)以及怎样对报文中所包含的信息进行解析。设计一组协议,通常是为了在一定约束条件下解决某一特定的问题。比如,超文本传输协议(HTTP,HyperTextTransferProtocol)是为了解决在服务器间传递超文本对象的问题,这些超文本对象在服务器中创建和存储,并由Web浏览器进行可视化,以使其对用户有用。即时消
5、息协议是为了使两个或更多用户间能够交换简短的文本信息。Application:应用程序;Socket:套接字;Host:主机;Channel:通信信道;Ethernet:以太网;Router:路由器;NetworkLayer:网络层;TransportLayer:传输层。IP协议提供了一种数据报服务:每组分组报文都由网络独立处理和分发,就像信件或包裹通过邮政系统发送一样。为了实现这个功能,每个IP报文必须包含一个保存其目的地址(address)的字段,就像你所投递的每份包裹都写明了收件人地址。(我们随即会对地址
6、进行更详细的说明。)尽管绝大部分递送公司会保证将包裹送达,但IP协议只是一个"尽力而为"(best-effort)的协议:它试图分发每一个分组报文,但在网络传输过程中,偶尔也会发生丢失报文,使报文顺序被打乱,或重复发送报文的情况。IP协议层之上称为传输层(transportlayer)。它提供了两种可选择的协议:TCP协议和UDP协议。这两种协议都建立在IP层所提供的服务基础上,但根据应用程序协议(applicationprotocols)的不同需求,它们使用了不同的方法来实现不同方式的传输。TCP协议和UDP
7、协议有一个共同的功能,即寻址。回顾一下,IP协议只是将分组报文分发到了不同的主机,很明显,还需要更细粒度的寻址将报文发送到主机中指定的应用程序,因为同一主机上可能有多个应用程序在使用网络。TCP协议和UDP协议使用的地址叫做端口号(portnumbers),都是用来区分同一主机中的不同应用程序。TCP协议和UDP协议也称为端到端传输协议(end-to-endtransportprotocols),因为它们将数据从一个应用程序传输到另一个应用程序,而IP协议只是将数据从一个主机传输到另一主机。TCP协议能够检测和
8、恢复IP层提供的主机到主机的信道中可能发生的报文丢失、重复及其他错误。TCP协议提供了一个可信赖的字节流(reliablebyte-stream)信道,这样应用程序就不需要再处理上述的问题。TCP协议是一种面向连接(connection-oriented)的协议:在使用它进行通信之前,两个应用程序之间首先要建立一个TCP连接,这涉及到相互通信的两台电脑的TCP部件间完成的握手消息(ha
此文档下载收益归作者所有