前言:
现时姐妹们对“java客户端服务端通信”可能比较着重,姐妹们都需要剖析一些“java客户端服务端通信”的相关资讯。那么小编同时在网络上网罗了一些有关“java客户端服务端通信””的相关文章,希望看官们能喜欢,看官们一起来了解一下吧!什么是客户端与服务端的通信协议
无论使用Netty还是使用原始的Socket编程,基于TCP通信的数据包格式均为二进制,协议指的就是客户端与服务端事先商量好的,每一个二进制数据包中的每一段字节分别代表什么含义的规则。一个简单的登录指令如下图所示。
在这个数据包中,第一个字节为1表示这是一个登录指令,接下来是用户名和密码,这两个值以\0分割,客户端发送这段二进制数据包到服务端,服务端就能根据这个协议来取出用户名和密码,执行登录逻辑。在实际的通信协议设计中,我们会考虑更多细节,比这个协议稍微复杂一些。
那么,协议设计好之后,客户端与服务端的通信过程又是怎样的呢?
客户端与服务端的通信如下图所示。
1. 客户端把一个Java对象按照通信协议转换成二进制数据包。
2. 通过网络,把这段二进制数据包发送到服务端。在数据的传输过程中,由TCP/IP协议负责数据的传输,与应用层无关。
3. 服务端接收到数据之后,按照协议取出二进制数据包中的相应字段,包装成Java对象,交给应用逻辑处理。
4. 服务端处理完之后,如果需要生成响应给客户端,则按照相同的流程进行。
本文摘自《跟闪电侠学Netty》