python socket 的理解

Posted 放在垃圾桶里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python socket 的理解相关的知识,希望对你有一定的参考价值。

前言

    socket的用法简单,但里面的概念有点模糊,记录自己本人的一点理解。

socket层结构图

注意,从此图中看出socket处于tcp和应用层之间。那么它代表啥意思呢?简明的说,数据的传输都是底层协议处理的,跟socket没啥关系。sokcet被抽象成文件,意味着socket就干两件事,读和写。

 

socket 函数 

 recv函数

    1.接收缓冲区接收数据,如果检测到无数据,或正在接收,就一直等待。

    2.当协议接收完毕,recv就copy接收缓冲区的数据到buf,如果recv缓冲区较大,recv要不停的copy几次。

           注意:在这里,我们把缓冲区想象成一个完成的文件,recv(100),相当于python open对象方法的read(100),如果文件大小1000,每次读100,下次就会从上一次100处开始继续读。

  3.当网络中断,recv返回一个长度为0的字符

总结

   参考文献

    socket send函数和recv函数详解 https://blog.csdn.net/chenhuajie123/article/details/9149185

    简单理解socket https://www.cnblogs.com/dolphinX/p/3460545.html

   100行代码实现的tcp反向代理  http://voorloopnul.com/blog/a-python-proxy-in-less-than-100-lines-of-code/

以上是关于python socket 的理解的主要内容,如果未能解决你的问题,请参考以下文章

Python中网络编程对socket accept函数的理解

Python中网络编程对 listen 函数的理解

简单socket服务器的基本理解

[python]初探socket

python基础——socket

Python之路--Python基础9--Socket编程