网络
定义:
一组互相连接的计算机:多台计算机组成,使用物理线路进行连接。
三要素
- IP地址:唯一标识网络上的每一台计算机,两台计算机之间通信的必备要素。
- 端口号:计算机中应用的标号,0-1024是系统使用的,有效的端口号是0-65536。
- 通信协议:通信规则,TCP/IP
OSI参考模型:
开放系统互连参考模型 Open System Interconnect
TCP/IP参考模型:传输控制/网际协议
IP地址的表示方法:
由4个字节的二进制数组成。
IP表示方法:点分十进制
IP地址=网络ID+主机ID
网络ID:标识计算机或者网络设备所在的网段
主机ID:标识特定主机或者网络设备
IP地址的分类:
地址类用于指定网络ID并在网络ID和主机ID之间提供分隔方法。
IANA负责分配A、B、C类网络地址,具体主机地址由机构组织自行分配。
IP地址类有:
特殊的IP地址:
0.0.0.0:本机
127.0.0.1:本机的回环地址,用于本机测试
255.255.255.255:当前子网,一般用于向当前子网广播信息。
IP地址在Java中的对应类是InetAddress类。
端口
端口:port
端口只是一个虚拟的概念,并不是说在主机上整的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。
传输协议:
UDP:相当于发短信(有字数限制),不需要建立连接,数据报的大小限制在64K之内,效率高,不安全,容易丢包。
TCP:相当于打电话,需要建立连接,效率相对比较低,数据传输安全三次握手完成。
Socket套接字
- 网络上的两个程序通过一个双向的通信连接实现数据的交换。
- 这个连接的一端称之为一个socket。
- Java中使用Socket完成TCP程序的开发,使用此类可以方便的建立可靠的、双向的、持续的、点对点的通讯连接。
- 在socket的程序开发中,服务器端使用ServerSocket等待客户端的连接。
- 对于Java的网络程序来讲,每一个客户端都使用一个socket对象来表示。
**基于TCP协议的Socket编程
- 进行网络通信时,Socket需要借助数据流来完成数据地传递工作。
基于TCP协议地Socket编程
Socket传递对象: