网络编程

网络通信

  • 如何实现网络的通信:

    • 通信双方的地址:IP + 端口号
  • 规则:网络通信的协议

    • http、ftp文件上传、smtp发送文件、tcp、udp
  • TCP/IP参考模型

  • 如何准确定位到网络上的一台或多台主机(地址)

    • ping www.baidu.com(域名),会返回一个IP地址
  • 找到主机之后如何进行通信

IP

  • IP:唯一定位一台网络上的计算机

  • 域名:为了解决记忆IP问题。

    • IP:www.vip.com(好多钱)
    • .com是国际域名,.cn是中国域名
  • ipconfig查看本机IP(windows),mac下用ifconfig查看,,会看到以太网(看到的都是局域网IP,不可能看到公网否则别人可以入侵了)

  • 127.0.0.1:本机(localhost)

    • 没有网也ping的通的一个IP
  • IP地址的分类,有两种分类方法,一种是IPV4/IPV6,另一种是公网-私网

    • IPV4/IPV6
      • IPV4:四个字节组成,每个字节长度0-255,大概42亿个(30亿都在北美,亚洲4亿,2011年就用尽了),比如:127.0.0.1
      • IPV6: IPV6地址:fe80::915d:470e:d522:4339%16(4个,这个不全,应该有8位),128位,8个无符号整数,比如:
        2001:0bb2:aaaa:0015:0000:0000:1aaa:1312
    • 公网-私网
      • IP地址分为A、B、C、D、E类https://www.jb51.net/network/579228.html
      • 公网:给互联网使用
      • 私网:给局域网使用的。192.168.xxx.xxx:一般是局域网,专门给组织内部使用的

端口

  • 表示计算机上的一个程序的进程

  • 一栋楼相当于一个IP,里面每家人相当于端口

  • 不同的进程有不同的端口号,用来区分软件

  • 端口被规定0-65535

    • TCP、UDP:65535*2,每个都是0~65535
    • 单个协议下端口号不能冲突。(比如TCP用了80,那么UDP也是可以用80的)
  • 端口分类:

    1. 公有端口(公认端口):0~1023,尽量不要占用,一般会被内置进程或服务器使用。HTTP默认端口80,HTTPS443、FTP21、SSH远程连接22、Telent远程监听23(访问:https://www.baidu.com/相当于http://www.baidu.com:80、http://www.baidu.com:443、https://www.baidu.com:443)

    2. 程序注册端口:1024~49151,分配给用户或者程序的。Tomcat8080、MySQL3306、Oracle1521

    3. 动态端口(私有端口):49152~65535,一般不要占用

  • 常见DOS命令

netstat -ano #查看所有端口
netstat -ano|findstr "5900" #查看指定的端口
tasklist|findstr "8696" #查看指定端口的进程(这个是QQ.exe)(端口用任务管理器查询,ctrl+shift+ESC)
|:是管道符号(过滤)

通信协议

  • 网络通信协议:速率、传输码率、代码结构、传输控制等

  • TCP/IP协议簇(是一组协议)

    • TCP:用户传输协议
    • UDP:用户数据报协议
    • IP:网络互联协议

文件上传

  1. 服务器端

  2. 客户端

Tomcat

服务端:

  • 自定义去做S(自己写的服务)

  • 可以通过Tomcat浏览器去写服务器S:JAVA后台开发

客户端:

  • 自定义C

  • 浏览器B

URL

学习路径

https://www.bilibili.com/video/BV1LJ411z7vY?p=3&spm_id_from=pageDriver

原文地址:https://www.cnblogs.com/OFSHK/p/14357280.html