## 客户端

import socket
import gevent
import threading
import multiprocessing ip_bind = ('127.0.0.1',8000)
c=socket.socket()
c.connect(ip_bind) def f(n):
while True:
data=str(n)
c.send(bytes(data,encoding='utf8'))
data = c.recv(1024)
print('服务端:',str(data,encoding='utf8')) c.close() x=[]
if __name__ == '__main__':
v=[] #多线程实现并发客户端
# u=[]
# for i in range(100):
# p = threading.Thread(target=f, args=[str(i), ])
# p.start()
# u.append(p)
#
# for p in u:
# p.join() # 多进程实现并发客户端
for i in range(100):
p = multiprocessing.Process(target=f,args=[i,])
p.start()
v.append(p)
for p in v:
p.join()

## 服务端 import sys
import time
import gevent
from gevent import socket
from gevent import monkey monkey.patch_all() #类似于Python中的黑魔法,把很多模块的阻塞的变成非阻塞的,
#比如socket中的rece 和send 都变
#所以,为了不阻塞 def server(port):
s=socket.socket()
s.bind(('127.0.0.1',port))
s.listen(2000)
while True:
cli,add=s.accept()
gevent.spawn(handle_request,cli) #通过gevent的启动一个协程,把客户端的socket对象传进去 def handle_request(s):
try:
while True:
data=s.recv(1024)
print('收到的信息:',str(data,encoding='utf8'))
s.send(data) if not data:
s.shutdown(socket.SHUT_WR)
#把和客户端的这个链接销毁。
except Exception as ex:
print(ex)
finally:
s.close() if __name__ == '__main__':
server(8000)

最新文章

  1. ASP.NET MVC Model元数据(五)
  2. MVC 关于easyui-datebox 赋值问题
  3. JDBC MySQL
  4. javascript new function()
  5. js实现日历卡
  6. JavaScript----分层导航 滚动事件
  7. 配置php5.6的运行环境
  8. IOS 免受xib自动布局影响
  9. setInterval和setTimeout定时器
  10. 创建用于自定义SharePoint解决方案部署的Visual Studio项目
  11. python3-day4(re正则表达式,冒泡)
  12. Office365维护命令
  13. 为什么开启子进程 一定要放在 if __name__ == '__main__' 下面
  14. 修改SIP协议中的User-Agent名称
  15. Linux中禁用命令历史记录
  16. dxCalloutPopup 简单使用教程
  17. C#中读取xml文件指定节点
  18. nodejs-hook 开发
  19. python基础学习16----模块
  20. Redis学习之路(三)之Redis主从和哨兵模式

热门文章

  1. C#异步案例一则
  2. JDK API1.6常用方法
  3. @NotEmpty、@NotNull、@NotBlank注解解析
  4. 程序员的进阶课-架构师之路(13)-B-树
  5. 交互程序 Scanner类
  6. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
  7. 顺序栈与两栈共享空间-C语言实现
  8. 2019-2020-1 20199304《Linux内核原理与分析》第一周作业
  9. MongoDB 谨防索引seek的效率问题【华为云技术分享】
  10. 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot