什么是 socket?简述基于 tcp 协议的套接字通信流程?

Posted rivend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是 socket?简述基于 tcp 协议的套接字通信流程?相关的知识,希望对你有一定的参考价值。

 Socket的英文原义是"孔"或"插座"。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,

可以用来实现不同虚拟机或不同计算机之间的通信。

在Internet上的主机一般运行了多个服务软件,同时提供几种服务每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

 

基于tcp 协议的套接字通信流程:

1). 服务器先用 socket 函数来建立一个套接字,用这个套接字完成通信的监听。 
2). 用 bind 函数来绑定一个端口号和 IP 地址。因为本地计算机可能有多个网址和 IP,每一个 IP 和端口有多个端口。需要指定一个 IP 和端口进行监听。 
3). 服务器调用 listen 函数,使服务器的这个端口和 IP 处于监听状态,等待客户机的连接。 
4). 客户机用 socket 函数建立一个套接字,设定远程 IP 和端口。 
5). 客户机调用 connect 函数连接远程计算机指定的端口。 
6). 服务器用 accept 函数来接受远程计算机的连接,建立起与客户机之间的通信。 
7). 建立连接以后,客户机用 write 函数向 socket 中写入数据。也可以用 read 函数读取服务器发送来的数据。 
8). 服务器用 read 函数读取客户机发送来的数据,也可以用 write 函数来发送数据。 
9). 完成通信以后,用 close 函数关闭 socket 连接。

以上是关于什么是 socket?简述基于 tcp 协议的套接字通信流程?的主要内容,如果未能解决你的问题,请参考以下文章

python面试题——网络编程和并发(34题)

python面试题三:Python 网络编程与并发

套接字编程——基于TCP协议

基于TCP协议的socket套接字编程

socket 套接字编程

Python经典面试题之网络编程与并发34问