一、网络编程的基本概念
1.1网络的概念
网络
:
一组相互连接的计算机,多台计算机组成,使用物理线路进行连接
1.2网络连接的功能
交换数据 共享资源
1.3网络编程的三要素
1) IP
地址
:
唯一标识网络上的每一台计算机,两台计算机之间通信的必备要素
2)
端口号
:
计算机中应用的标号
(
代表一个应用程序
)
,0-1024 系统使用或保留端口,端号口占
2
个字节,所以有效端口 0-65535
3)
通信协议
:
通信的规则
TCP,UDP
二、IP_端口_Socket
2.1IP地址
IP
地址用于标识网络上的唯一一台计算机
,
共
32
位,
4
个
8
位二进制数组成
IP
地址分为:
IPv4
和
IPv6
IPv4
:“点分十进制表示法”
IPv6:
“十六进制表示法
”
IP
地址
=
网络
ID+
主机
ID
网络
ID
:标识计算机或网络设备所有的网段
主机
ID
:标识特定的主机或网络设备
特殊IP地址:
1) 127.0.0.1:
本机回环地址,用于本机测试
2)
255.255.255.255:
当前子网,一般用于当前子网广播信息
2.2端口号
端口号:虚拟的概念,使用
0-65535
之间的整数,用于标识不同的应用程序
每个网络程序都会至少有一个端口号
(银行系统的每个窗口对应一个服务,对应一个端口)
2.3Socket含义
Socket
称为“套接字”,是计算机之间通信的一种约定或一种方式,通过 Socket
这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。每一个客户端都使用一个 Socket
对象表示,服务器端使用 ServerSocket
等待客户端的连接。
生活案例:
如果你想写封邮件发给远方的朋友,如何写信、将信打包,属于应用层。信怎么写,怎么打包完全由我们做主;而当我们将信投入邮筒时,
邮筒的那个口就是套接字
,在进入套接字之后,就是传输层、网络层等(邮局、公路交管或者航线等)其它层次的工作了。我们从来不会去关心信是如何从西安发往北京的,我们只知道写好了投入邮筒就 OK了
三、TCP 和 UDP 协议的区别
3.1数据的传输
网络参考模型:
(1) OSI
参考模式
:
开放系统互连参考模型(
Open System Interconnect)
![](https://i-blog.csdnimg.cn/blog_migrate/f3c62d61661bf14606c69bf8ecdf6de3.png)
(2) TCP/IP
参考模型
:
传输控制
/
网际协议
Transfer Controln Protocol/Internet Protocol
![](https://i-blog.csdnimg.cn/blog_migrate/ca3e12e58ac6a8a2a2e21f45aa5543de.png)
3.2
TCP
和
UDP
协议的区别
TCP(transfer control protocol)
一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer
)通信协议 。
特点
1)
面向连接
2)
点到点的通信
3)
高可靠性
:
三次握手
4)
占用系统资源多、效率低
生活案例
1)
打电话(打电话,如果对方不接听,通信没有办法连接,打电话需要一直等待,别人给你打电话就打不进去,效率比较低,安全的,如果对方不接听,就没有办法传输数据)
主机A向主机B发送连接请求,主机B接收到了连接请求,向主机A发送回复确认,A主机收到回复确认,向B主机回复确认
UDP(User DatagramProtocol )
一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
特点
:
1)
非面向连接,传输不可靠,可能丢失
2)
发送不管对方是否准备好,接收方收到也不确认
3)
数据报的大小限制在