6_网络编程

网络编程(TCP/IP)

网络编程中有两个主要的问题

  • 如何准确的定位到网络上的一台或多台主机
  • 找到主机后如何进行通信

两个要素

通信双方地址:

  • ip
  • 端口号

规则:网络通信的协议

http, ftp, TCP, UDP……

IP地址

ip地址:InetAddress

  • 唯一标识
  • 127.0.0.1, localhost
  • ip地址分类
    • ipv4/ipv6
      • ipv4,4个字节(32位)
      • ipv6,128位,8个无符号整数
    • 公网(互联网),私网(局域网)
      • ABCD类地址(1127,128191,192223,224239)
      • 192.168.xxx.xxx专门给组织内部使用
  • 域名:记忆ip

端口Port

端口表示计算机上的一个程序的进程;

  • 不同的进程有不同的端口号!用来区分软件!
  • 被规定0~65535
  • TCP,UDP:65535*2,单个协议下,端口号不能冲突
  • 端口分类:
    • 公有端口:0~1023
      • http:80
      • https:443
      • ftp:21
    • 程序注册端口:1024~49151,分配用户或程序
      • Tomcat:8080
      • MySQL:3306
      • Oracal:1521
    • 动态、私有:49152~65535

通信协议

TCP UDP对比

TCP:打电话

  • 连接,稳定
  • 三次握手,四次挥手
最少需要三次,保证稳定连接。
A:在?
B:在。
A:上号!

A:我要走了
B:你真的要走了吗
B:你真的真的要走了吗
A:我真的要走了
  • 客户端、服务端
  • 传输完成、释放连接,效率低

UDP:发短信

  • 不连接,不稳定
  • 客户端、服务端(没有明确的界限)
  • 不管有没有准备好,都可以发给你
  • 导弹、DDOS

TCP实现聊天

客户端:

  1. 连接服务器Socket
  2. 发送消息

服务端:

  1. 建立服务的端口ServerSocket
  2. 等待用户的连接 accept
  3. 接收用户的消息

URL

统一资源定位符:定位互联网上的某一个资源

DNS域名解析

协议://ip地址:端口/项目名/资源
posted @ 2023-02-17 17:40  鹅四砸砸灰  阅读(58)  评论(0)    收藏  举报