最后更新:2022-08-04 11:10:01 手机定位技术交流文章
目录
1.网络通信协议是什么?
TCP/IP协议
3、协议分类
3.1、UDP协议
3.2、TCP协议
网络编程的三个要素
4.1、协议
4.2、IP地址
4.3、端口号
因特地址第五类
5.1,InetAddress通用方法
6、UDP通信程序
6.1,DatagramSocket类
6.2.DatagramSocket通用方法
6.3、代码实现
6.执行聊天案例
7、TCP通信程序
7.1.索克类施工方法
7.2,索克类通用方法
7.3、代码实现
7.撤销通讯程序
通过计算机网络可以连接多个计算机.一个位于同一网络的计算机在连接和通信时必须遵守某些规则,就像开车在路上遵守交通规则一样。在计算机网络中,这些连接和通信规则被称为网络通信协议.对数据传输格式、传输速度、传输步骤等均有统一的规定;为了完成数据交换,双方必须同时遵守。
在上述图中,TCP/IP协议的四个层是应用程序层、传输层、网络层和链接层,每个层负责不同的通信功能。
链层:用于定义物理传输通道,通常是一些网络连接设备的驱动协议,例如为光纤和网络线提供。
网络层:是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。
传输层:主要允许网络程序通信,在进行网络通信时可以使用TCP协议或UDP协议。
应用程序层:主要负责应用程序协议,如HTTP协议、FTP协议等。
用户数据图协议(User Datagram Protocol)。UDP是一个非连接的通信协议,这意味着数据传输时,数据的发送者和接收者不建立逻辑连接。
简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。UDP的交换过程如下图所示。
传输控制协议 (Transmission Control Protocol)。TCP协议是一种面向连接的通信协议,即传输数据之前,建立传送器与接收器之间的逻辑连接,然后再传输数据,它提供了两个计算机之间的可靠和无误的数据传输.
在TCP连接中,客户端和服务器必须清楚地标识,客户端向服务器发送连接请求,每个连接创建需要“三个手”。
什么是三次握手
三个握手:在TCP协议中,在发送数据的准备阶段,客户端和服务器之间进行三个握手,以确保连接的可靠性。
第一次握手时,客户端向服务器发送连接请求并等待服务器确认。
第二次握手将发送回客户端的响应,通知客户端已收到连接请求。
第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。
TCP/IP协议是上面描述的。
IP地址:指互联网协议地址(Internet Protocol Address),俗称IP。IP地址用于网络中独特的编码计算机设备。如果我们把个人电脑和电话比起来,因此IP地址与电话号码相符。
IPv4是一个32位二进制数字,通常分为四个字符,代表为a.b.c.d
的形式,例如192.168.65.100
。其中a、b、c、d都是0~255之间的十进制整数,那么最多可以表示42亿个。【IPv6】:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。
为了扩大地址空间,建议通过IPv6重新定义地址空间,使用128位地址长度,每16字节1组,分成8组16英寸系数,代表为ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。
常用命令
查看本机IP地址
ipconfig
ipconfig all
检查网络是否连通
ping vault IP地址
特殊的IP地址
本机IP地址:
127.0.0.1
、localhost
。
网络通信基本上是两个进程(应用程序)的通信。 每个计算机都有多种进程,那么在网络中通信时,我们如何区分这些进程?
如果IP地址只能识别网络中的设备,那么端口号只能识别设备中的进程(应用程序)。
端口数:由两个字符表示的整数,它的值范围为0–65535。其中,0到1023之间的端口号用于一些众所周知的网络服务和应用程序,普通应用程序需要使用超过1024的端口数。如果其他服务或应用程序使用端口号,这将导致当前程序无法启动。
常见的服务占用端口
80:HTTP服务
8080:tomcat
3306:mysql
1521:oracle
443:HTTPS服务,安全加密HTTP
21:FTP服务,文件传输
22:SSH服务,安全加密远程登录
23:电话网服务,远程登录
方法名 | 说明 |
---|---|
public static InetAddress getLocalHost() | 返回本地主机。 |
public static InetAddress getByName(String host) | 以ip和主机名获取InetAddress |
public String getHostAddress() | 获取ip地址 |
public String getHostName() | 获取主机名 |
构造方法
方法名 | 说明 |
---|---|
DatagramSocket() | 创建数据包并将其绑定到主机地址上的任何可用端口 |
DatagramPacket(byte[] buf,int len,InetAddress add,int port) | 创建一个发送镜头长度的数据包到指定端口上的指定主机的数据包 |
方法名 | 说明 |
---|---|
void send(DatagramPacket p) | 发送数据报包 |
void close() | 关闭数据报套接字 |
void receive(DatagramPacket p) | 接受数据报包 |
发送端
接收端
发送端
接收端
方法名 | 说明 |
---|---|
Socket(InetAddress address,int port) | 创建一个流字符串并将其连接到指定的IP定义端口 |
Socket(String host, int port) | 创建一个流字符串并将其连接到指定主机上的指定端口号码 |
方法名 | 说明 |
---|---|
InputStream getInputStream() | 返回此插座的输入流 |
OutputStream getOutputStream() | 返回该插座的输出流 |
客户端
服务器端
客户端
服务器端
本文由 在线网速测试 整理编辑,转载请注明出处 。