Java中的网络编程

本文介绍了网络编程的基础概念,包括CS结构和BS架构,重点阐述了IP地址(包括公网IP和内网IP)、端口号的作用,以及TCP和UDP两种通信协议的特点,展示了如何在Java中使用InetAddress类处理IP地址。

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

什么是网络编程

可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信)

基本的通信架构

基本的通信架构有2种形式:

  • CS架构(Client客户端/Server服务端)
  • BS架构(Browser浏览器/Server服务端)

无论是CS结构,还是BS架构的软件都必须依赖网络编程

CS结构

在这里插入图片描述

BS架构

在这里插入图片描述

网络通信三要素

IP地址——是设备在网络中的地址,是唯一的标识
端口——应用程序在设备中唯一的标识
协议——连接和数据在网络中传输的规则

IP地址

IP:全称“互联网协议地址“,是分配给上网设备的唯一标志。
IP地址有两种形式:IPv4、IPv6
在这里插入图片描述
在这里插入图片描述
IP域名:
域名代表IP,通过域名访问时,
首先发送到dns服务器(域名解析器),dns服务器将IP地址返回给电脑,机器拿着真实的IP地址访问该服务器,该服务器返回数据展示在电脑中。
如果dns没有域名对应的IP,会把域名发给运营商服务器,去互联网上找到IP,将该IP返回到dns服务器中记住

公网IP、内网IP

  • 公网IP:是可以连接互联网的IP地址;
  • 内网IP:也叫局域网IP,只能阻止机构内部使用。

192.168.开头的就是常见的局域网地址,范围即为192.168.0.0——192.168.255.255,专门为组织机构内部使用。

特殊IP地址:
127.0.0.1、localhost:代表本机IP,只会寻找当前所在的主机

Java中代表IP地址的类(InetAddress)

在这里插入图片描述

端口号

标记正在计算机设备上运行的应用程序的,被规定为一个16位的二进制,范围是0~65535

端口分类

  • 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
  • 注册端口:1024~49151,分配给用户进程或某些应用程序
  • 动态端口:49152~65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配。

注意:自己开发的程序一般使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。

通信协议

  • 网络上的通信设备,事先规定的连接规则,以及传输数据的规则被称为网络通信协议。

开放式网络互联标准:OSI网络参考模型

  • OSI网络参考模型:全球网络互联标准(分为7个层级 )
  • TCP/IP网络模型:事实上的国际标准
    在这里插入图片描述

传输层的2个通信协议(TCP/UDP)

  • UDP:用户数据报协议;
  • TCP:传输控制协议。
UDP协议(通信效率高)
  • 特点:无连接,不可靠通信
  • 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口,目的地IP、程序端口和数据(限制在64KB以内)等。
  • 发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故是不可靠的
TCP协议(通信效率相对不高)
  • 特点:面向连接、可靠通信。
  • TCP的最终目的:要保证在不可靠的信道上实现可靠的传输
  • TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接

TCP协议:三次握手建立可靠连接
可靠连接:确定通信双方,收发消息都是正常无问题的(全双工)
在这里插入图片描述
传输数据会进行确认,以保证数据传输的可靠性

TCP协议:四次挥手断开连接
目的:确保双方数据的收发都已经完成
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值