1、TCP/IP协议簇
TCP/IP 以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议。
TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即网络接口层、IP层、传输层和应用层。
2、InetAdress类
获取Internet上主机的地址:使用InetAddress类的静态方法:
getByName(String s):将一个域名或 IP 地址传递给该方法的参数,获得一个 InetAddress对象,该对象含有主机地址的域名和IP地 址,该对象用如下格式表示它包含的信息:www.atguigu.com/202.108.35.210
3、TCP程序设计
一般而言,主动发起通信的应用程序属于客户端。而服务器则是等待通信请求,当服务器收到客户端的请求,执行需要的运算然后向客户端返回结果。
4、IP 和 端口号
IP 地址标识 Internet 上的计算机,端口号标识正在计算机上运行的进程(程序)。
端口号与IP地址的组合得出一个网络套接字。
端口号被规定为一个 16 位的整数 0~65535。其中,0~1023被预先定义的服务通信占用(如telnet占用端口23,http占用端口80等)。除非我们需要访问这些特定服务,否则,就应该使用 1024~65535 这些端口中的某一个进行通信,以免发生端口冲突。
5、套接字能执行7种基本操作:
连接到远程主机
绑定到端口
接收从远程机器来的连接请求
监听到达的数据
发送数据
接收数据
关闭连接。
6、服务器建立 ServerSocket 对象
ServerSocket 对象负责等待客户端请求建立套接字连接,类似邮局某个窗口中的业务员。也就是说,服务器必须事先建立一个等待客户请求建立套接字连接的ServerSocket对象。
所谓“接收”客户的套接字请求,就是accept()方法会返回一个 Socket 对象
7、客户端创建Socke对象
客户端程序可以使用Socket类创建对象,创建的同时会自动向服务器方发起连接。Socket的构造方法是:
Socket(String host,int port)throws UnknownHostException,IOExceptio:向服务器(域名是host。端口号为port)发起TCP连接,若成功,则创建Socket对象,否则抛出异常。
Socket(InetAddress address,int port)throws IOException:根据InetAddress对象所表示的IP地址以及端口号port发起连接。
客户端建立socketAtClient对象的过程就是向服务器发出套接字连接请求
8、流连接
客户端和服务器端的套接字对象诞生以后,还必须进行输入、输出流的连接。
套接字调用 close()可以关闭双方的套接字连接,只要一方关闭连接,就会导致对方发生IOException异常。