主动权在客户端手中

客户端和服务器使用套接字通信,但两者获取套接字的方式不同,服务器用BLAB四部曲取得套接字:

  • 绑定端口。

  • 监听。

  • 接受连接。

  • 开始通信。

主动权在客户端手中 - 图1

服务器终其一生都在等待新客户端的连接。在客户端连接之前,它什么事都不能做。但客户端不一样,它想什么时候连接服务器并开始通信都可以。客户端只需两步就能取得套接字:

  • 连接远程端口。

  • 开始通信。

远程端口和IP地址

服务器在连接网络时必须决定使用哪个端口,而客户端除了要知道端口号还需要知道远程服务器的IP地址:

主动权在客户端手中 - 图2

IP地址难以记忆,所以人们一般使用域名。域名是一个好记的字符串,如:

www.oreilly.com

尽管人类喜欢用域名,但网络中的数据包只使用数字IP地址。