当前位置: 首页 > news >正文

初始网络编程

什么是网络编程?

在网络通信协议下,不同计算机上运行的程序,进行的数据传输。

应用场景:即时通信、网游对战、金融证券、

国际贸易、邮件、等等。

不管是什么场景,都是计算机跟计算机之间通过网络进行数据传输。

●Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。

常见的软件架构

BS架构:

BS架构的优缺点

1.不需要开发客户端,只需要页面+服务端

2.用户不需要下载,打开浏览器就能使用

3.如果应用过大,用户体验受到影响

cs架构:

CS架构的优缺点

1.画面可以做的非常精美,用户体验好

2.需要开发客户端,也需要开发服务端

3.用户需要下载和更新的时候太麻烦

小结:

网络编程三要素

确定对方电脑在互联网上的地址也就是——ip

确定接收数据的软件也就是——端口号

确定网络传输的规则——协议

网咯三要素:

IP:设备在网络中的地址,是唯一的标识。

端口号:应用程序在设备中唯一的标识。

协议:数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp。

小结

网络编程三要素—IP

IP全称:

Internet Protocol,是互联网协议地址,也称IP地址。是分配给上网设备的数字标签。

通俗理解:

上网设备在网络中的地址,是唯一的

常见的IP分类为:

IPV4、IPV6

解决ipv4不够用的问题出现了ipv6但主流还是ipv4

总结

iPV4的地址分类形式

因为ipv6没有普及,现在怎么解决ipv4不够用的问题。

●公网地址(万维网使用)和私有地址(局域网使用)。

●192.168.开头的就是私有址址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用,以此节省IP

特殊IP地址

127.0.0.1,也可以是localhost:是回送地址也称本地回环地址,也称本机IP,永远只会寻找当前所在本机。

常用的CMD命令:

ipconfig:查看本机IP地址

ping:检查网络是否连通

小结

IP的类InetAddress的使用

网络编程三要素—端口号

端口号:

应用程序在设备中唯一的标识。

端口号:由两个字节表示的整数,取值范围:0~65535

其中0~1023之间的端口号用于一些知名的网络服务或者应用。

我们自己使用1024以上的端口号就可以了。

注意:一个端口号只能被一个应用程序使用。

网络编程三要素—协议

协议

UDP协议

  • 用户数据报协议(User Datagram Protocol)
  • UDP是面向无连接通信协议。

速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据

面向无连接:意思是没有先检查俩台设备是否连接上就开始发送,有可能俩台电脑没 有连接发送失败。

TCP协议

  • 传输控制协议TCP(Transmission Control Protocol)
  • TCP协议是面向连接的通信协议。

速度慢,没有大小限制,数据安全。

面向连接:意思是先检查俩台设备是否连接上,确保连接成功在发送。

UDP通信程序

UDP发送数据:

1.创建发送端的DatagramSocketi对象

2.数据打包(DatagramPacket)

3.发送数据

4.释放资源

UDP接受数据:

1.创建接收端的DatagramSocketi对象

2.接收打包好的数据

3.解析数据包

4.释放资源

细节:

UDP的三种通信方式(代码实现)

代码实现:

发送端:

接收端:

TCP网络协议

TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象

通信之前要保证连接已经建立

通过Socket产生IO流来进行网络通信

客户端:

服务端:

代码实现:

发送数据(客户端):

接受数据(服务端)

TCP中文乱码问题

用转换流将字节流转换为字符流。

TCP通信程序(三次握手)(四次挥手)

三次握手:

四次挥手:

相关文章:

  • 【C++设计模式】第四篇:建造者模式(Builder)
  • Android14 串口控制是能wifi adb实现简介
  • SQLAlchemy系列教程:理解SQLAlchemy元数据
  • 【AI深度学习基础】NumPy完全指南终极篇:核心功能与工程实践(含完整代码)
  • 论文阅读和代码实现EfficientDet(BiFPN)
  • 探索 Hutool - JSON:高效的 JSON 处理利器
  • DeepSeek:全栈开发者视角下的AI革命者
  • 【2025rust笔记】超详细,小白,rust基本语法
  • 数据结构第五节:排序
  • 知识图谱+智能问诊预诊系统vue+django+neo4j架构、带问诊历史
  • 在 Linux 系统上安装部署 Docker
  • 高频 SQL 50 题(基础版)_1084. 销售分析 III
  • mapbox基础,使用点类型geojson加载symbol符号图层,用于标注文字
  • Python 网络爬虫教程与案例详解
  • Linux跳过密码登录MySQL,实现重置mysql密码,导入导出数据库
  • Python实现一个类似MybatisPlus的简易SQL注解
  • 新装的conda 以及pycharm未能正确初始化,或conda环境变量配置错误问题解决!!!
  • 若依框架中的岗位与角色详解
  • Stable Diffusion模型Pony系列模型深度解析
  • 在Linux中开发OpenGL——环境搭建
  • phpcms做网站页面开发/如何做网络推广运营
  • 珠海高端网站设计/百度非企推广开户
  • 重庆做的好的房产网站/windows优化大师好不好
  • 汕头做网站设计/360竞价推广客服电话
  • web前端毕业设计论文/seo关键词挖掘
  • 安徽省淮南市城乡建设委员会网站/百度高级检索入口