初识socket

首先声明哦,
它和websocket完全是两个概念。websocket是一个全双工通讯协议。而socket是作为进程通讯机制而存在的,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

下面这段文字摘抄自segmentfault中的一个答案(我觉得还挺通俗易懂的):

socket 在操作系统里面是一个文件描述符, 和普通的文件的文件描述符一样,可以通过系统调用 read(), write()进行读取和写入数据.
每一个socket 其实有几个重要的参数, 本机ip,本机port,对端ip,对端port,以及协议等, 这几个通常要是unique的, 操作系统才不会把socket 和 socket 之间搞混.
服务器端的程序,一般会把socket 和某一个ip,port 端口bind 起来, 这样构成了一个特殊的socket, 这个socket 没有对端ip和对端port, 只有本机ip和本机port.
你可以把这个socket 看成是一个特殊的文件(好比登记表), 当有新的连接进来的时候, 都可以通过 accept 系统调用让操作系统接受一个新的连接, 同时返回一个新的socket, 这个socket 是绑定在(本机ip,本机port,对端ip,对端port) 这个上面的, 也就是对应了一个unique的连接.
然后你可以拿着这个新产生的socket 进行写入和读取等操作(因为它是一个文件描述符). 那个用来listen的socket 和这个新的socket 是不相关的,在操作系统内部也是分开的,会有各自的缓冲区等.

待读文章

  1. 简单理解Socket
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,470评论 19 139
  • 每当想写文章就想百度一下,百度之后发现socket比预想的要复杂。 socket定义:中文名套接字,网络上的两个程...
    闲成灰阅读 274评论 0 0
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 6,057评论 1 13
  • 原文地址:http://www.cnblogs.com/skynet/archive/2010/12/12/190...
    archyly阅读 1,119评论 0 8
  • 到了5~6岁敏感期的分析,发现对这一敏感期出现的现象没有特别大的感触,虽然接触了非常多这个年龄的孩子,但具体的这些...
    CiciChenChen阅读 374评论 0 0

友情链接更多精彩内容