上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

JAVAEE初阶 网络编程(二)

guduadmin12小时前

回显服务器

    • 一. 服务器端
      • 1.1 服务器端的代码分析。
      • 1.2 服务器端的代码
      • 二. 客户端
        • 2.1 客户端的代码分析
        • 2.2 执行顺序
        • 2.3 客户端的代码

          在构造一个简单的服务器之前,我们需要了解到一些传输层提供给应用层的一些API。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第1张JAVAEE初阶 网络编程(二),在这里插入图片描述,第2张JAVAEE初阶 网络编程(二),在这里插入图片描述,第3张

          一. 服务器端

          1.1 服务器端的代码分析。

          在服务器端,第一步我们要创建DatagramSocket对象。

          socket对象是在内存中的,针对这个内存对象操作就会改变网卡。

          一个主机上的端口号是整数,并且只能被一个进程所绑定,但是一个进程可以绑定多个端口i

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第4张

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第5张

          如果在网络中通常表示,socket对象创建失败,因为它的端口号可能会被占据。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第6张

          通过这个字节数组保存收到消息的正文,也就是UDP数据报的载荷部分,并不一定要设置4096,可以灵活设置。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第7张

          这的receive方法需要一个输出型参数,那么我们就需要创建一个DatagramPacket对象,receive就会从网卡中读取到一个UDP数据报,存储在requestPacket当中,其中的载荷部分被放到字节数组中,报头部分也会被requestPacket的其他属性所保存。

          但是执行到receive的时候,如果还没有客户端发来请求怎么办呢?

          receive就内置了一个阻塞等待功能。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第8张

          String里的第一个参数,getData表示当前的字节数组。

          第二个参数表示的是该字节数组的有效长度,而非实际总长度。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第9张

          socket对象的send方法也需要一个输出型参数,所以我们要创建一个对象。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第10张

          第一个参数是把String中的字节数组拿了过来

          第二个参数是字节数组的有效长度,

          第三个参数是将服务器的端口号和IP地址以及包含了客户端的IP地址和端口号。是把请求中的IP和端口号转化为了目的IP和目的端口,便于返回客户端。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第11张

          此处参数中的端口号并不一定是9090,而是 1024

          1.2 服务器端的代码

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第12张

          二. 客户端

          2.1 客户端的代码分析

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第13张

          客户端不需要手动指定端口,因为系统会自动分配一个空闲的端口号。

          服务器是程序员手动指定端口,是可控的。

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第14张

          2.2 执行顺序

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第15张JAVAEE初阶 网络编程(二),在这里插入图片描述,第16张

          2.3 客户端的代码

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第17张

          JAVAEE初阶 网络编程(二),在这里插入图片描述,第18张JAVAEE初阶 网络编程(二),在这里插入图片描述,第19张

网友评论