关于socket

本文详细探讨了Socket的工作过程,从概念、实现到类型,揭示了Socket作为进程间通信机制的本质。服务器端Socket通过创建、绑定端口、监听请求,以及使用child socket处理客户端连接,完成三次握手、通信和四次挥手的过程。文中还提供了Python和Go的网络编程实例,建议阅读《UNIX网络编程 卷1:套接字联网API(第3版)》以深入了解。
摘要由CSDN通过智能技术生成

对sokect的工作过程一直很模糊,特别是看到一些库的网络实现,总难免有困惑。今天决定搞清楚。

网上看到的不少资料,会从各个层面跟我们解释socket:

概念:

我们知道,两个进程通信时,要先能确定信息接收的对象。在互联网中,我们通过ip确定了目标机器,通过端口号确定了机器上的某个进程。因此协议+ip+端口能唯一确定信息接收(连接)对象。

socket是操作系统提供的进程间通信的机制。

大部分应用层的协议如FTP、SMTP、POP3等都使用socket建立进程间的连接。 当两个进程要建立双向连接进行通信时,socket往往成对存在,一个在进程A(客户端),一个在进程B(服务器端)。因此也有人说:socket是进程间通信的一个端点。

实现:

简单理解Socket一文有段话:

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

socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

这段话其实已经点出了socket的意义和本质。

 

类型:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值