网络编程学习
目录
- 网络通信三要素
- IP地址
- 端口号
- 协议
- UDP协议
- TCP协议
什么是网络编程?
可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)
基本的通信架构
基本的通信架构有两种形式:CS架构(Client客户端/Server服务端),BS架构(Browser浏览器/Server服务端)
网络通信三要素
IP地址
设备在网络中的地址,是唯一的标识
全称:Internet Protocol,互联网协议地址,是分配给上网设备的唯一标识
IP地址有两种形式:IPV4和IPV6
IP域名
公网IP、内网IP
公网IP:是可以连接互联网的IP地址;内网IP:也叫局域网IP,只能组织机构内部使用
192.168.
开头的就是常见的局域网地址,范围即为192.168.0.0
– 192.168.255.255
,专门为组织机构内部使用
特殊IP地址
127.0.0.1
或localhost:代表本机IP,只会寻找当前所在的主机
InetAddress代表IP地址
InetAddress的常用方法如下
端口号
应用程序在设备中唯一的标识
标记正在计算机设备上运行的应用程序的,被规定为一个16位的二进制,范围是0~65535
分类:
周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
注册端口:1024~49151,分配给用户进程或某些应用程序
动态端口:49152~65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配
注意:我们自己开发的程序一般选择使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错
协议
连接和数据在网络中传输的规则
网络上通信的设备,事先规定的连接规则,以及传输数据的规则被称为网络通信协议
传输层的两个通信协议
UDP(User Datagram Protocol):用户数据报协议
TCP(Transmission Control Protocol):传输控制协议
UDP协议
无连接,不可靠通信
不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口、目的地IP、程序端口和数据(限制再64kB内)等
发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故是不可靠的
通信效率高
语音通话,视频直播
TCP协议
特点:面向连接、可靠通信
TCP的最终目的
要保证在不可靠的信道上实现可靠的传输
TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接
可靠连接:
确定通信双方,收发信息都是正常无问题的(全双工)
三次握手建立可靠连接:
客户端发出连接请求(确定客户端发消息没问题)
服务器端返回一个响应(确定服务器端收发消息没问题)
客户端再次发出确认信息,连接建立(确定客户端收消息没问题)
四次挥手断开连接
目的:确保双方数据的收发都已经完成
客户端发出断开连接请求
服务器端返回一个响应:稍等
服务器端将最后的数据处理完毕,返回一个响应:确认断开
客户端发出正式确认断开连接
通信效率相对不高
网页、文件下载、支付