回显服务器
- 一. 服务器端
- 1.1 服务器端的代码分析。
- 1.2 服务器端的代码
- 二. 客户端
- 2.1 客户端的代码分析
- 2.2 执行顺序
- 2.3 客户端的代码
在构造一个简单的服务器之前,我们需要了解到一些传输层提供给应用层的一些API。
一. 服务器端
1.1 服务器端的代码分析。
在服务器端,第一步我们要创建DatagramSocket对象。
socket对象是在内存中的,针对这个内存对象操作就会改变网卡。
一个主机上的端口号是整数,并且只能被一个进程所绑定,但是一个进程可以绑定多个端口i
如果在网络中通常表示,socket对象创建失败,因为它的端口号可能会被占据。
通过这个字节数组保存收到消息的正文,也就是UDP数据报的载荷部分,并不一定要设置4096,可以灵活设置。
这的receive方法需要一个输出型参数,那么我们就需要创建一个DatagramPacket对象,receive就会从网卡中读取到一个UDP数据报,存储在requestPacket当中,其中的载荷部分被放到字节数组中,报头部分也会被requestPacket的其他属性所保存。
但是执行到receive的时候,如果还没有客户端发来请求怎么办呢?
receive就内置了一个阻塞等待功能。
String里的第一个参数,getData表示当前的字节数组。
第二个参数表示的是该字节数组的有效长度,而非实际总长度。
socket对象的send方法也需要一个输出型参数,所以我们要创建一个对象。
第一个参数是把String中的字节数组拿了过来
第二个参数是字节数组的有效长度,
第三个参数是将服务器的端口号和IP地址以及包含了客户端的IP地址和端口号。是把请求中的IP和端口号转化为了目的IP和目的端口,便于返回客户端。
此处参数中的端口号并不一定是9090,而是 1024
1.2 服务器端的代码
二. 客户端
2.1 客户端的代码分析
客户端不需要手动指定端口,因为系统会自动分配一个空闲的端口号。
服务器是程序员手动指定端口,是可控的。
2.2 执行顺序
2.3 客户端的代码
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章