网络编程知识点复习(第一次)

对于该板块的学习,个人目前觉得侧重思路、概念的学习(所以计算机网络就很有必要去学习了),因为我们在真实的开发中,不会直接使用这种开发方式,都是对它进行了封装





1、概述

对于网络要有一定的认识,为接下来的javaWeb打下基础。不过java网络编程中对于网络的细节讲述不是很多,建议直接学习计算机网络,让你对计算机网络有一个系统的认识。如果你对计算机网络的知识已经很熟悉了,那么这一章也就十分轻松了。

概念B/S与C/S:

javaweb: 网页编程 B/S

网络编程:TCP/IP C/S




2、网络基本要素

明白网络的七层协议和四层协议的区别以及联系

OSI参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP模型:应用层、传输层、网络层、链路层

前者是理论上的一种设想模型,后者是我们真正在实际的使用中的标准。




3、IP、端口

http://localhost:8080

该地址为我们的电脑自己的IP地址加上端口号

IP地址就像我们的门牌号,端口就像我们的房间号。我们的某个功能是放在具体的房间中,我们需要访问电脑的相应的资源的时候,就需要先找到对应的电脑,再在电脑中找到对应的存放资源的位置,即对应的端口号。

前些年使用的是IPv4,4个字节,约30亿。随着使用网络的人越来越多,所以又推出了IPV6。

网络分为公网和私网。公网是外网,就像是我们身份证上面的名字,我们出门在外别人只能以身份证区分我们;私网就是内网,类似于我们在家庭的小名,只有家庭的人才知道我们。

域名的概念:对比于一连串的IP号码,我们更擅长记忆具体的有含义的信息。比如183.232.231.174和www.baidu.com。域名的出现就是为了帮我们更好的记忆IP。当然对应的好的域名也需要购买。

由于java中一切皆对象,所以java也将我们的IP封装成了一个类:InetAddress

  • InetAddress.getByName(“127.0.0.1”)
  • InetAddress.getByName(“localhost”)
  • InetAddress.getLocalHost()

当然我们也可以查询对应网址的IP信息

  • .getCanonicalHostName() 查询主机名字
  • .getHostAddress()) 查询主机地址
  • .getHostName() 查询主机域名

端口分类:

1、公有端口 0~1023

  • HTTP : 80
  • HTTPS : 443
  • FTP : 21
  • Telent : 23

2、程序注册端口:1024~49151,分配用户或者程序(未来还有很多的端口号需要我们记忆

  • Tomcat:8080
  • MySQL:3306
  • Oracle:1521
  • Redis:6379

3、动态、私有:49152~65535




4、通信协议 (重点)

对于程序的测试代码,侧重思路即可,且一定要理解思路

TCP:用户传输协议

UDP:用户数据报协议

IP:网络互联协议

一个面试中常问的点

请你解释一下什么是三次握手、四次挥手。


4.1、TCP

编写一个TCP通信的测试程序

客户端:

  1. 得到我们需要发送到的服务端的IP地址,以及端口号
  2. 创建一个socket连接
  3. 将我们的信息封装成IO流,并进行传输
  4. 关闭资源

服务端:

  1. 我们给自己编写的这个程序设置一个端口号
  2. 将我们的状态设置为accept
  3. 使用socket.getInputStream()读取客户端发来的的信息
  4. 使用管道流将我们我们读取到的信息进行解析,并打印输出
  5. 关闭资源

传输资源涉及到文件的IO,所以IO部分的知识也需要掌握,才能看懂对应的代码


4.2、UDP

使用UDP进行数据传输时,是没有客户端和服务端的概念的。只有发送端和接受端的概念。

编写UDP测试程序

发送端:

  1. 新建socket
  2. 建包
  3. 设置对应的数据、地址以及端口号
  4. 发送包数据
  5. 关闭资源

接受端:

  1. 将对应的端口开放
  2. 利用IO实现数据包的接受
  3. 将接受到的数据进行打印
  4. 关闭资源

4.3、URL类

这个类,可以将我们指定的路径进行解析,另作他用。

package pers.mobian.udp;

import java.net.MalformedURLException;
import java.net.URL;

public class TestURL {
    public static void main(String[] args) throws MalformedURLException {
        URL url = new URL("http://localhost:8080/mobian/index.jsp?username=mobian&password=123");
        System.out.println(url.getProtocol());//使用的协议
        System.out.println(url.getHost());//主机IP
        System.out.println(url.getPort());//使用的端口号
        System.out.println(url.getPath());//文件路径
        System.out.println(url.getFile());//文件的全路径
        System.out.println(url.getQuery());//参数列表
    }
}




5、思维导图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b13dqKKg-1586314053612)(%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B.assets/image-20200408104533555.png)]

发布了45 篇原创文章 · 获赞 17 · 访问量 3683

猜你喜欢

转载自blog.csdn.net/qq_44377709/article/details/105381653
今日推荐