最终目标:启动服务后可以有无数个访问,并且可以随时输入,服务端使用进程池。

服务端

from  socket import *
import os,time
from concurrent.futures import ProcessPoolExecutor
def func(conn,addr):
while True:
try:
ret = conn.recv(1024)
if not ret:break
time.sleep(5)
print(ret.decode('utf-8'))
conn.send(ret.upper())
print("端口号:【%s】是,进程ID:【%s】"% (addr[1],os.getpid()))
except ConnectionResetError:
break if __name__ == "__main__":
server = socket(AF_INET, SOCK_STREAM)
server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
server.bind(('127.0.0.1', 8130))
server.listen(5) p = ProcessPoolExecutor(2)
while True:
conn,addr = server.accept()
p.submit(func,conn,addr)

客户端

from socket import *
while True:
client = socket(AF_INET, SOCK_STREAM) #这里使用的是伪链接,每输入一次都会断开,但客户端看起来一直与服务端保持着链接,其实没有
data = input('>>>').strip()
client.connect(('127.0.0.1',8130))
client.send(data.encode('utf-8'))
ret = client.recv(1024)
print(ret.decode('utf-8'))
client.close()

创建了4个客户端,执行结果

hgsdfa
端口号:【54815】是,进程ID:【15828】
eawd
端口号:【54817】是,进程ID:【5580】
few
端口号:【54819】是,进程ID:【15828】
few
端口号:【54820】是,进程ID:【5580】
cv;
端口号:【54829】是,进程ID:【15828】
g
端口号:【54831】是,进程ID:【5580】
#可以清楚的看到,进程ID只有两个,证明确实是在进程池中循环

最新文章

  1. AutoCAD .net 开发 SelectionFilter Foreach Linq 性能比较
  2. jQuery原生框架-----------------核心框架
  3. 【zz】matlab 均值方差
  4. 苹果的软件/系统盘 网站 http://www.panduoduo.net/u/bd-369186934/2
  5. Html / CSS常见问题 解决方案
  6. ntpath join(path, *paths) 发生UnicodeDecodeError的Bug的解决方案
  7. ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别
  8. ubuntu 12.04 安装nginx
  9. 《招聘一个靠谱的iOS》面试题参考答案(下)
  10. JVM 垃圾回收机制( 一) 回收对象的判定
  11. 【jQuery插件】使用cropper实现简单的头像裁剪并上传
  12. 【LR9】【LOJ561】CommonAnts 的调和数 数论 筛法
  13. CF666E Forensic Examination
  14. Nginx搭建
  15. PTA 7-3 jmu-ds-单链表的基本运算(15 分)
  16. Sql Server中日期时间格式化为字符串输出
  17. django 静态文件
  18. [转]java中通过request获取路径中的不同信息
  19. POJ 1062 最短路Dijstra
  20. Bypass WAF

热门文章

  1. 代码转换工具 Java to C#
  2. C++语言基础(15)-友元函数和友元类
  3. AngularCSS 的引入: CSS On-Demand for AngularJS
  4. oracle导出表的办法
  5. docker导入导出
  6. 进出口流程 & 报关单据
  7. js实现pdf对页面的打印
  8. FFMPEG中关于ts流的时长估计的实现
  9. 第一百七十六节,jQuery,插件
  10. Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例