网络编程——(1)网络编程入门

article/2025/9/26 16:50:45

一、软件架构

1.1C/S结构:

全称Client/Server结构,是指客户端和服务器结构。常见的程序有QQ、迅雷等。

1.2 B/S结构:

全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。

两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

 

二、网络通信协议

  • 网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。
  • TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

                       

上图中,TCP/IP协议中的四层分别是应用层、传输层、网络层和链路层,每层分别负责不同的通信功能。

  • 链路层:链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤、网线提供的驱动。
  • 网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。
  • 运输层:主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议。
  • 应用层:主要负责应用程序的协议,例如HTTP协议、FTP协议等。

三、协议分类

通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。

java.net 包中提供了两种常见的网络协议的支持:

  • UDP:用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

    由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

    但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。UDP的交换过程如下图所示。

特点:数据被限制在64kb以内,超出这个范围就不能发送了。

数据报(Datagram):网络传输的基本单位。

 

  • TCP:传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。

    在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。

  • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
  • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
  • 第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。

    

生活中的例子为:打电话时,拨号人说喂? 对方听到后回复,接收到对方的回复以后再进行语言交流。

完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/WUQRb51x.shtml

相关文章

网络编程入门

1.网络编程入门 1.1网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网…

线性代数学习笔记——第六讲——矩阵的转置

1. 矩阵转置的定义(矩阵的行和列互换位置) 2. 矩阵转置的性质之一:矩阵转置一次后再转置一次,等于矩阵自身(有点像一个两状态开关,在开与关之间来回切换) 3. 对称矩阵的充要条件是矩阵转置一次后…

转置矩阵、对称矩阵、反对称矩阵以及向量的反对称矩阵

一、转置矩阵 假设矩阵 A 如下表示: 则其转置矩阵表示为: 二、对称矩阵 若矩阵 B 与其转置矩阵相等,则称矩阵 B 为对称矩阵,如: 三、反对称矩阵 若矩阵 C 与其转置矩阵取负后相等,则称矩阵 C 为反对称矩…

Java编程之转置矩阵

一、题目 利用随机函数产生36个10~30之间的整数给一个6*6的矩阵赋值。 (1)求最大元素,并指出其在矩阵中的所有出现位置; (2)求该矩阵的转置矩阵。 二、实验代码 package fighting; import java.util.Rand…

FPGA 矩阵转置

这里写目录标题 1 功能2 开发环境3 框架4 转置公式5 Simulation第一部分第二部分第三部分 6 Matlab代码产生FIFO数据产生转置矩阵 7 HDL仿真文件顶层文件FIFO顶层文件FIFO读FIFO写RAM顶层文件 8 IP配置FIFORAMROM 9 Reference 1 功能 通过tb读取本地数据保存到FIFO&#xff0c…

MATLAB的转置

小席的碎碎叨:   以前处理的数据通常都是实数矩阵,一直认为MATLAB中的转置可用实现,并没有发现有什么不对。但是,这段时间在做线性调频信号的干扰抑制的仿真,其信号矩阵都是复数矩阵,依然在需要转置的时候…

矩阵转置(transpose、T)

1.T T 适用于一、二维数组的转置 transpose 适用于高维数组,需要用到一个由轴编号组成的元组,才能进行转置 In [1]: import numpy as npIn [2]: arr np.arange(20).reshape(4,5)#生成一个4行5列的数组In [3]: arr Out[3]: array([[ 0, 1, 2, 3, 4]…

线性代数:转置矩阵(matrix transpose)和逆矩阵(matrix inverse)

这一篇是为了后面着色效果的数学基础做积累,之前我们使用矩阵的大部分情况都是直接的仿射空间变换,就是仿射空间A变换到仿射空间B,使用矩阵也都是如下: 矩阵T*齐次坐标V 齐次坐标V 其计算细节也就是矩阵行与向量列的点积&#xf…

转置矩阵(matrix transpose)和逆矩阵(matrix inverse)的相关公式

转载自: https://blog.csdn.net/yinhun2012/article/details/84236202 这一篇是为了后面着色效果的数学基础做积累,之前我们使用矩阵的大部分情况都是直接的仿射空间变换,就是仿射空间A变换到仿射空间B,使用矩阵也都是如下: 矩阵T…

转置矩阵(Transpose of a matrix)

定义 给定一个矩阵 A,将矩阵的行列互换得到的新矩阵称为转置矩阵,记为 ,。转置矩阵的行列式不变,即 。转置矩阵由下列动作建立: 将 A 的横行写为 的纵列;将 A 的纵列写成 的横行。 形式来说&#xff0…

数据结构--3.3 矩阵转置

矩阵转置 结构体创建初始化转置打印测试代码运行结果 1.稀疏矩阵的压缩存储,至少需要存储以下信息: 矩阵中各非 0 元素的值,以及所在矩阵中的行标和列标; 矩阵的总行数和总列数; 上图是一个稀疏矩阵,若对…

D2D与其他短距离通信技术

本篇文章主要对D2D和其他短距离通信技术(WIFI\NFC\zigbee\蓝牙、超宽带、微站)做了比较,从运营商投入、基础设施、应用、最大传输速率、最大传输距离、频率、标准、特征等方面

D2D引擎与GDI\GDI+绘制效果对比

本例主要是对比D2D和GDI在绘制文字、线条的区别,以及D2D与GDI在绘制图片时的区别。 D2D是基于COM组件开发的,使用前的CoInitialize(NULL)是必须的;另外,GDI的初始化GdiplusStartup()也别忘了。 废话少说&…

D2D加载图片资源(2)

※先给大家认识下什么是WIC WIC全称是Windows Image Component,是一套扩展的API,用来处理数字图像,它是基于COM组件的。该API包含非常丰富的图像处理函数。 详细可以点击百度文库再看看 http://baike.baidu.com/view/414115.htm?fraladdi…

5G关键技术,D2D通信-ielab

D2D(device to device)技术是指两个对等的用户节点之间直接进行通信的一种通信方式。在由D2D通信用户组成的分散式网路中,每个用户节点都能发送和接收信号,并具有自动路由(转发消息)的功能。网路的参与者共用它们所拥有的一部分硬…

D2D D3D12 渲染视频帧思路及实现

写在之前 耗时2个月,写完公司的音视频处理系统。对于整个音视频处理有了基本的了解。个人感觉最坑的地方有三: 编解码音视频录制的同步视频预览渲染(视频帧的渲染) 由于在以后要支持同时多路1080P录制及预览,所以对…

车载通信与导航(五):D2D通信流程

取自https://blog.csdn.net/u012159948/article/details/20059927 D2D技术可以应用于移动蜂窝网络,以提高资源利用率和网络容量。每一个D2D通信链路占用的资源与一个蜂窝通信链路占用的相等。D2D通信将在宏蜂窝基站的控制下获得通信所需的频率资源和传输功率。它与蜂…

关于字体绘制的baseline (QT 和 D2D)

常规字体绘制API调用: QT:QPainter::drawText D2D: ID2D1RenderTarget::DrawText 以上字体绘制某些特殊效果无法达到, 我们可以用Path绘制字体: QPainterPath::addText(qreal x, qreal y, const QFont &f, const QString &text); D2D: 将字用指定字体属性绘制好,…

DirectX12(D3D12)基础教程(十三)——D2D、DWrite On D3D12与文字输出

文章目录 1、 前言2、D2D、DWrite简介3、添加D2D、DWrite基础支持文件4、D2D、DWrite基本编程步骤5、基于D3D11On12设备创建D2D渲染目标6、创建DWrite字体用D2D显示文字7、D2D、D3D11on12与D3D12同步 1、 前言 在经过了前面一系列章节的“狂轰滥炸”式的学习之后,如…

D2D

D2D: Device-to-Device即是设备到设备的通信。 1.认识D2D 基于蜂窝网络的D2D通信,或称为邻近服务(Proximity Service,ProSe),是指用户数据可不会经过网络中转直接在终端之间传输。D2D通信与传统的通信架构有显著区别&#xff0c…