client

  1. import socket
  2. client = socket.socket()
  3. client.connect(
  4. ('127.0.0.1',8888)
  5. )
  6. while 1:
  7. msg = input('input>>>')
  8. if msg == 'q':
  9. break
  10. client.send(msg.encode('utf-8'))
  11. data = client.recv(1024).decode('utf-8')
  12. print(data)
  13. client.close()

server线程解决

  1. import socket
  2. from multiprocessing import Process,Queue
  3. import threading
  4. import socketserver
  5. # q = Queue(4)
  6. server = socket.socket()
  7. server.bind(
  8. ('127.0.0.1', 8888)
  9. )
  10. server.listen(3)
  11. def se():
  12. while 1:
  13. conn,addr = server.accept()
  14. print(addr)
  15. while 1:
  16. try:
  17. data = conn.recv(1024).decode('utf-8')
  18. print(data)
  19. conn.send(data.encode('utf-8'))
  20. except Exception as e:
  21. print(e)
  22. break
  23. conn.close()
  24. if __name__ == '__main__':
  25. p1 = threading.Thread(target=se)
  26. p2 = threading.Thread(target=se)
  27. p3 = threading.Thread(target=se)
  28. p1.start()
  29. p2.start()
  30. p3.start()

server进程解决

  1. from multiprocessing import Process
  2. import socket
  3. def se(ser):
  4. while 1:
  5. # q.put(sb)
  6. conn,addr = ser.accept()
  7. print(addr)
  8. while 1:
  9. try:
  10. data = conn.recv(1024).decode('utf-8')
  11. print(data)
  12. conn.send(data.encode('utf-8'))
  13. except Exception as e:
  14. print(e)
  15. break
  16. conn.close()
  17. if __name__ == '__main__':
  18. server = socket.socket()
  19. server.bind(
  20. ('127.0.0.1', 8888)
  21. )
  22. server.listen(3)
  23. p1 = Process(target=se,args = (server,))
  24. p2 = Process(target=se,args = (server,))
  25. p3 = Process(target=se,args = (server,))
  26. p1.start()
  27. p2.start()
  28. p3.start()

2019.10.22 用TCP实现服务端并发接收的更多相关文章

  1. TCP协议下的服务端并发,GIL全局解释器锁,死锁,信号量,event事件,线程q

    TCP协议下的服务端并发,GIL全局解释器锁,死锁,信号量,event事件,线程q 一.TCP协议下的服务端并发 ''' 将不同的功能尽量拆分成不同的函数,拆分出来的功能可以被多个地方使用 TCP服务 ...

  2. UDP广播 与 TCP客户端 --服务端

    随着倒计时的响声,自觉无心工作,只想为祖国庆生. 最近有遇到过这样一个问题,将摄像头识别的行人,车辆实时显示在客户端中.有提供接口,会以Json的数据的形式将实时将识别的对象进行Post提交.所以我们 ...

  3. TCP/IP网络编程之基于TCP的服务端/客户端(二)

    回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让我们回顾下服 ...

  4. TCP/IP网络编程之基于TCP的服务端/客户端(一)

    理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于流(stream)的套接字.TCP是Transmissi ...

  5. java TCP 通信:服务端与客服端

    1.首先先来看下基于TCP协议Socket服务端和客户端的通信模型: Socket通信步骤:(简单分为4步) 1.建立服务端ServerSocket和客户端Socket 2.打开连接到Socket的输 ...

  6. 基于TCP协议套接字,服务端实现接收客户端的连接并发

    基于TCP协议套接字,服务端实现接收客户端的连接并发 服务端 import socket from multiprocessing import Process server=socket.socke ...

  7. 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发

    ''' 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发 ''' client import socket import time client = socket.socket() clie ...

  8. 进程池与线程池、协程、协程实现TCP服务端并发、IO模型

    进程池与线程池.协程.协程实现TCP服务端并发.IO模型 一.进程池与线程池 1.线程池 ''' 开进程开线程都需要消耗资源,只不过两者比较的情况下线程消耗的资源比较少 在计算机能够承受范围内最大限度 ...

  9. python并发编程-多线程实现服务端并发-GIL全局解释器锁-验证python多线程是否有用-死锁-递归锁-信号量-Event事件-线程结合队列-03

    目录 结合多线程实现服务端并发(不用socketserver模块) 服务端代码 客户端代码 CIL全局解释器锁****** 可能被问到的两个判断 与普通互斥锁的区别 验证python的多线程是否有用需 ...

随机推荐

  1. 深入浅出 Java Concurrency (14): 锁机制 part 9 读写锁 (ReentrantReadWriteLock) (2)[转]

    这一节主要是谈谈读写锁的实现. 上一节中提到,ReadWriteLock看起来有两个锁:readLock/writeLock.如果真的是两个锁的话,它们之间又是如何相互影响的呢? 事实上在Reentr ...

  2. 用 vue 脚手架 vue-cli 初始化(新建)项目

    前提:已经安装 node.js 和 git 1.在需要创建的文件夹中,右击 -> Git  Bush Here ,然后输入命令 vue init webpack "文件名"( ...

  3. PAT甲级——A1015 Reversible Primes

    A reversible prime in any number system is a prime whose "reverse" in that number system i ...

  4. CentOS 6.5 usb安装

    我只说一下将CentOS安装作为服务器的情况,但是适用于普遍的CentOS安装过程,首先下载CentOS的安装镜像文件,有这么几种:CentOS-6.5-x86_64-LiveCD.CentOS-6. ...

  5. Composer安装Yii2以及相关扩展

    1.安装redis扩展 命令:composer require yiisoft/yii2-redis Git地址:https://github.com/yiisoft/yii2-redis/blob/ ...

  6. css3之属性选择器

    总体来看一下都有哪些选择器 1.属性选择器  1)[att*=val] 2)[att^=val] 3)[att$=val] 2.结构伪类选择器 3.UI伪类选择器 其中E:read-only伪类选择器 ...

  7. python 与 selenium 学习笔记

    在写自动运行测试用例,并且生成HTML报告的时候,遇到了这个报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in positi ...

  8. 读书笔记--Head First PMP目录

    1.引言 2.阻止.约束和项目 3.过程框架 4.项目整合管理 5.范围管理 6.时间管理 7.成本管理 8.质量管理 9.人力资源管理 10.沟通管理 11.项目风险管理 12.采购管理 13.职业 ...

  9. jeecms之全文检索

    需要在后台生成检索,如下: . 这样,在首页进行搜索的时候才会显示如下: 注意,一定要先生成索引,才能进行全文检索.  

  10. MyBatis连接Neo4j问题记录:mapper参数传递(节点标签作为参数)

    MyBatis与Neo4j的连接我在上一篇做了,这是链接:https://blog.csdn.net/qq_34233510/article/details/82496101 上一篇中UserMapp ...