疯狂java 网络

本文深入探讨了TCP/IP协议的层次结构,包括物理层、数据链路层、网络层、传输层和应用层。详细解释了IP地址、端口、IPv4与IPv6的区别,以及如何使用InetAddress和URL类进行网络通信。同时介绍了Socket和ServerSocket在服务器端与客户端编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



     应用层                 : HTTP/SMTP/POP3/FTP  - 和具体应用相关。


     传输层:               : TCP / UDP
  
     网络层                 : IP


     物理层+数据链路层


     TCP/IP - Bill Joy。




IP地址与端口: 
     就是为网络上的每个【物理节点】分配一个“门牌号”。
     0~255 . 0~255 .  0~255.  0~255    


     IPv4           32位的地址。 4G个网络地址        - 中国能分到网络地址很少。
     IPv6           128位的地址。 网络地址。




     每个物理节点有一个“门牌号”,这个门牌号就用于唯一标识这个物理节点。 
     端口 - 相当于“房间号”。


     要确定一个应用程序的服务地址,不仅需要提供IP地址(门牌号)+ 端口号(房间号)。
     
     端口的约定(0~65535个端口):
     0~1023 : 公用的端口。80:HTTP上网。 21:FTP, 110: POP3.
     1023~49151: 应用程序端口。 MySQL:3306; Oracle:1521。
     49152~65535 动态分配端口。


InetAddress:代表一个IP地址,它有两个子类,一个子类代表IPv4地址,
             一个子类代表IPv6的地址。


           InetAddress
          ↗         ↖
     Inet4Address  Inet6Address


两个工具类:URLDecoder与 URLEncoder


     URLEncoder :可以把“非西欧文字”编码成%B7%E8%BF%F1的形式。
        —— 在有些场景,无法传输和存储“非西欧文字”,此时就需要用到URLEncoder。
        典型的像Cookie,Cookie的值就不能是中文。


     URLDecoder :可以把成%B7%E8%BF%F1的形式的字符串解码成“非西欧文字”。




URL  :代表一个网络地址。
 
       URLConnection : 代表与网络地址的连接
           ↑
     HttpURLConnnection  : 基于HTTP协议的网络连接。




 
TCP通信:
     Socket - 相当于“虚拟链路”两端的插座。
               Socket负责完成通信。


     ServerSocket - 它只负责“接受”连接。
                     它用于产生Socket。




     服务器端编程:
     (1) 创建ServerSocket对象,该对象负责“接收”连接。
     (2) 如果客户端有连接,accept方法将会返回一个Socket。 
     (3) 通过IO流读取对方的信息,也可向对象发送数据。




     客户端编程:
     (1) new Socket()来建立与远程服务器的连接。
     (2) 通过IO流读取对方的信息,也可向对象发送数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值