最后更新:2021-12-01 07:54:53 手机定位技术交流文章
计算机网络
被描述为一个计算机系统,将不同地理位置、用途不同的若干计算机及其外部设备连接在一个通信线路上,以便在网络操作系统、网络管理软件和网络通信协议的监督和协调下进行资源共享和信息传输。
网络编程
网络通信协议允许使用不同机器运行的软件传输数据。
IP地址
为了使网络中的计算机能够相互交流,必须发给每台计算机一个识别号码,使计算机能够接收数据,并使计算机能够识别发件人,即IP地址。
端口
网络通信只是两个应用程序之间的通信。 因为每台计算机都有各种各样的应用程序, 您在网上互动时如何区分它们? 如果一个 IP 地址可以识别一个网络中的单个设备, 那么一个端口号码可以识别该设备的唯一应用程序。 这是应用程序的 身份孤立 IP 地址可以识别一个网络中的单个设备, 那么一个端口号码可以识别该设备的唯一应用程序。 这是应用程序的标识 。
协议
计算机网络可以连接数台计算机,而同一网络中的计算机在连接和通信方面必须遵守某些规则,正如公路上行驶的汽车必须遵守交通条例一样,在计算机网络中,这些连接和通信规则被称为网络通信规程,对数据传输格式、传输速度和数据传输速度提出了一致的要求。联合民主党和TCP是共同的议定书。
IP地址是识别网络中设备的唯一方法。
IP地址分为两大类
IPv4 : 为连接网络的每个主机提供32位位元地址。 根据 TCP/ IP, IP 地址以二进制格式表示, 每个IP 地址为32位元或4个字节。 例如, 二进制格式的 IP 值为“ 1100亿, 1010亿, 0010010010 ”, 这个大地址太难管理 。 因此, IP 地址可能以“ ” 表示 IP 地址的表达方式被称为点对点表达式, 这显然比一个或一个都容易记住 。
IPv6:随着互联网越来越受欢迎,对IP地址的需要也越来越普遍;然而,IP地址有限对IP的分布造成压力。 为了扩大地址空间,通过IPv6重新定义了地址空间,使用128位位地址长度,按每16字节八组十六进制数字排列,从而解决网络资源不足的问题。
DOS常用命令:
Ping IP 地址测试网络连通性。
特殊IP地址:
InnetAddress:这是互联网协议(IP)地址。
相关方法
| 方法名 | 说明 |
|---|---|
| static InetAddress getByName(String host) | 主机名的 IP 地址已经确定。 主机名可以是机器名或 IP 地址 。 |
| String getHostName() | 要获取此 IP 地址, 请输入您的主机名 。 |
| String getHostAddress() | 返回文本格式的 IP 地址字符串。 |
代码演示
端口
端口号
协议
UDP协议
TCP协议
传送控制议定书(TCP)是传送控制议定书的缩略语。
TCP 协议是一个面向连接的通信协议,在传输数据之前使发送者和接收端之间具有逻辑联系,然后传输数据,在两台计算机之间提供可靠和无缝的数据传输,在TCP 连接中确定客户与服务器的连接,向服务发送客户的连接请求,并通过“三手”程序将每个连接进行。
三次握手:客户与服务器在TCP协议数据传输初步步骤期间进行三次交流,以确保稳定的通信。
对于初始握手,客户端向服务器发送连接请求,服务器必须确认此请求。
服务器响应客户的第二次握手,发送回复,并通知客户已收到连接请求。
在第三次握手中,客户向服务器发送确认信息,以确认连接。
三个握手已经完成,连接已经建立,使客户和服务器能够开始数据传输。 由于这种面向连接的特点,TCP协议可以为数据传输提供安全保障,其应用范围很广。 比如上传文件、下载文件、阅读网页等等。
Java Java UDP 通信
构造方法
| 方法名 | 说明 |
|---|---|
| DatagramSocket() | 创建数据包并将其连接到您主网络上的任何可访问端口。 |
| DatagramPacket(byte[] buf,int len,InetAddress add,int port) | 创建数据包并将其传送到指定主机的指定端口,长长的 len 长度。 |
相关方法
| 方法名 | 说明 |
|---|---|
| void send(DatagramPacket p) | 发送数据报包 |
| void close() | 关闭数据报套接字 |
| void receive(DatagramPacket p) | 从此将接受数据包 。 |
发送数据的步骤
代码演示
接收数据的步骤
构造方法
| 方法名 | 说明 |
|---|---|
| DatagramPacket(byte[] buf, int len) | 制作数据组包,以便接收长长的Len。 |
相关方法
| 方法名 | 说明 |
|---|---|
| byte[] getData() | 返回数据缓冲区 |
| int getLength() | 发送数据的长度或收到数据的长度被退回。 |
示例代码
[外国链图象传送失败后,建议为直接上传而保存照片(img-kopCr3L-16382727921197)(C: UsersLSHAppDataRoaming Typoratopora-user-imageimage 2021131166564762][Png, png, png, png, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng.
案例需求
UDP传输的数据:键盘数据输入到输入的数据达到886时,传送数据结束。
在通过UDP接收数据时使用了死亡循环,因为接收者不知道发送者何时停止发送。
代码实现
单播
两个东道方之间一对一的端对端通信
组播
广播用于与某一东道方进行通信。
广播
主机使用无线电将数据传送给局域网的所有主机。
实现步骤
代码实现
实现步骤
代码实现
Java TCP 通信
构造方法
| 方法名 | 说明 |
|---|---|
| Socket(InetAddress address,int port) | 创建串行字符串并将其链接到给定的 IP 端口号 。 |
| Socket(String host, int port) | 生成流并将它们链接到所提供的主机端口号 。 |
相关方法
| 方法名 | 说明 |
|---|---|
| InputStream getInputStream() | 此软件包的输入流被返回 。 |
| OutputStream getOutputStream() | 返回此软件包的输出流 。 |
示例代码
构造方法
| 方法名 | 说明 |
|---|---|
| ServletSocket(int port) | 制作连接到特定端口的服务器集 。 |
相关方法
| 方法名 | 说明 |
|---|---|
| Socket accept() | 接受您在监听后要连接到这里的软件包 。 |
注意事项
三次握手和四次挥手
三次握手
[外国连锁照片传送失败,源站可能有一个偷链机制,建议保存图片并直接上传(img-svSw8pv-16382727921199) (..peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng)
四次挥手
[Foreign-rbG181863827921200] [Foreign-convention photograph 传送失败;来源站可能有一个海盗链系统;照片应保存下来,以便直接上传(img-rbG18186318827921200) (. at_pat_pat_ peng, png, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng)
示例代码
案例需求
客户端: 传输数据并从服务器获取反馈 。
收到留言后,请提供反馈。
案例分析
代码实现
案例需求
客户端:服务器接收来自本地文件的信息 。
服务器: 收到的数据已写入本地文件, 提供反馈 。
案例分析
相关方法
| 方法名 | 说明 |
|---|---|
| void shutdownInput() | 将此软件包的输入流置于数据流的尽头 。 |
| void shutdownOutput() | 禁用此软件包的输出流 。 |
代码实现
优化方案一
需求
服务器只能一次处理一个客户端请求, 收到一个图像后, 服务将被关闭 。
解决方案
使用循环
代码实现
优化方案二
需求
当初始文档第二次上传时, 它将被覆盖 。
解决方案
UUID。 要创建随机文件名, 请使用随机UID () 函数 。
代码实现
优化方案三
需求
虽然循环允许服务器处理多个客户请求,但它不允许服务器同时与许多客户连接。
解决方案
开启多线程处理
代码实现
优化方案四
需求
许多线索的使用可能允许服务器同时执行多个客户端请求。 但是,太多的资源被浪费在很多线索中,可能让服务器同时执行多个客户端请求。 但是,太多的资源被浪费了。
解决方案
加入线程池
代码实现
本文由 在线网速测试 整理编辑,转载请注明出处。