socket究竟是什么

背景:

  socket在客户服务端程序中经常遇到的名词,常用来负责做客户和服务器之间的通讯,那它究竟是什么?

 

socket:

  百度百科上:套接字是双端通讯的端点抽象(网络中不同主机上应用进程之间)。它上联应用进程,下联网络协议,是应用进程和网络进行交换的接口。

  通俗的讲:socket就是对TCP/IP协议的一个封装,它使用设计模式中的门面模式,让程序员更好理解、使用的方式,使用TCP/IP协议栈。即它本身并不是协议,而是一组好操作TCP/IP网络的接口。具体如下图:

      

 

socket如何工作的:

  见下图:

 

 

 

 

  举个栗子:

    需求:质量管理部门要提供一个用户投诉服务。

    方案:质量管理部门先申请一个电话12365(socket_fd);并向服务公告部门通报(别人可以从服务公告部门获知),提供的地址(sockadrr)以及属于哪个部门的(port);然后质量管理部门的人只需要在电话后listen就可以了。

      投诉人投诉时,只需要一个电话(socket_fd),拨打电话(connect)到“提供的地址(sockadrr)以及属于哪个部门的(port)”,质量管理部门的人接通电话(accept)后,就可以进行沟通了(read/write)。

      投诉人投诉完(close),质量管理部门的人下班(close)。

 

posted @ 2021-08-08 23:57  修心而结网  阅读(628)  评论(0编辑  收藏  举报