Python基于unix socket的并发技巧

Posted 点点寒彬

tags:

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

背景

在开发Mock中心的过程中,每个serverclient通讯的时候,需要使用unix socket这种高效的本机通讯协议来交换数据,但是unix socket通讯协议是基于文件的,也就是当并发量大的时候,单个文件作为通讯信道会出现拥堵的情况。

思路

解决的思路很简单,不使用单文件作为通讯信道。
TCP协议中,应对并发是有多种方式的。最常规的方式就是以多线程的方式,监听多个通讯信道,还有Linux上比较经典的epoll的方式。
从本质上来说,多线程的方式,其实就是开启了多个通信信道,在Linux系统底层看来,就是多个socket文件。而epoll的方式,其实就是极致的压榨单信道的性能。
在设计这个通讯方式的时候,其实就是为了简便的实现高性能。
server监听的时候,仅监听一个文件,但是回包的时候,client在请求之前先监听一个文件,然后把文件地址带到请求串中,server在收到这个请求之后,回包就不通过原路返回,而是回到这个client监听的地址。

代码

  • client
class 

以上是关于Python基于unix socket的并发技巧的主要内容,如果未能解决你的问题,请参考以下文章

python基础之socket编程

python socket

python练习基于socket的FTP程序 v1.1.0(支持并发)

Python自动化 第八篇:Python基础-Socket编程进阶

10.python网络编程(socket server 实现并发 part 2)

网络socket编程实现并发服务器——多线程编程