Socket详解

  两个进程如果需要通信,最基本的前提是,能够唯一的标识一个进程。在本地通信中,可以通过PID唯一标识一个进程,但在网络中冲突几率大。

  IP层的ip地址可以唯一标识主机,TCP层的协议和端口号唯一标识网络中的进程,所以可以利用ip地址+协议+端口号唯一标识网络中的进程。

  socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。

  • socket通信流程(“打开 - 读/写 - 关闭”模式)

  1. server下

                           创建socket    socket()

             绑定socket与端口号    bind()

                           监听该端口    listen()

  接受来自客户端的连接请求    accept()

                  从socket中读取字符    recv()

                           关闭socket    close()

  2. client下

                               创建socket    socket()

                     连接指定的端口号   connect()

                 向socket中写入信息   send()

                               关闭socket    close()

  服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求。

原文地址:https://www.cnblogs.com/jiqianqian/p/7453831.html