使用python实现tcp服务器时,如果客服端不停的进行短连接操作,不停的建立和断开连接,会导致服务端存在很多无效连接(处于LASH_ACK状态),这是由于在python中无法检测连接是否断开导致的。但是使用c语言实现就不存在这些问题,使用c/c++很容易检测每个连接的状态,并进行连接的关闭操作。但是python中有丰富的库,可以方便的实现一些复杂业务(数学运算等),这些在c/c++中实现很复杂。可以兼顾c/c++和python的优点,将连接的建立及读/写操作通过c/c++实现编译成动态库提供接口给python操作,可以通过ctypes动态加载库的方式,或者通过swig编译链接成python的模块通过正常的import操作使用。
使用c++简单的实现了tcp server端的python模块,代码及例程地址https://github.com/xianhehu/tcpserver.git