python-socket.listen(backlog)-等待队列的长度
来源:互联网 发布:高成本网络大电影 编辑:程序博客网 时间:2024/04/29 07:32
转载地址:https://segmentfault.com/q/1010000007796752
实例代码
服务器等待客户端连接的代码
from threading import Threadfrom socket import socket, AF_INET, SOCK_STREAMdef echo_server(addr, nworkers): # Run the server sock = socket(AF_INET, SOCK_STREAM) sock.bind(addr) # 这里设置了listen(5),listen(5)限制了一个时刻服务器最多接收的客户端。 sock.listen(5) while True: client_sock, client_addr = sock.accept() # 调用echo_client来处理客户端的连接 t = Thread(target=echo_client, args=(client_sock, client_addr)) t.daemon = True t.start()echo_server(('',15000)
服务器处理客户端的代码
def echo_client(sock, client_addr): ''' Handle a client connection ''' print('Got connection from', client_addr) while True: msg = sock.recv(65536) if not msg: break sock.sendall(msg) print('Client closed connection') sock.close()
问题描述
问题一
书中是这样描述上面这个例子的: 尽管这个也可以工作, 但是它不能抵御有人试图通过创建大量线程让你服务器资源枯竭而崩溃的攻击行为。
但是我不明白的是服务器已经设置了listen(5),这个listen(5)难道不会限制每次只有5个客户端能够连接吗?攻击者怎么可以创造多个线程?
问题二
对于服务器网络IO延迟有一点不懂的地方,以上面的代码段2为例子,网络IO延迟是不是就是msg = sock.recv(65536)和sock.sendall(msg)中由于网速原因造成的延迟?
- 2016年12月14日提问
- 评论
- 邀请回答
- 编辑
阅读全文
0 0
- python-socket.listen(backlog)-等待队列的长度
- socket的listen()的backlog参数和未完成队列、已完成队列的关系
- windows socket编程中 listen()的backlog参数和未完成队列、已完成队列的关系
- Socket编程中 listen函数第二个形参backlog的作用
- socket编程:backlog值对listen连接状态的影响
- linux下socket函数之listen的参数backlog
- Socket编程中 listen函数第二个形参backlog的作用
- 修改listen监听的队列长度
- listen()的backlog参数和未完成队列、已完成队列的关系
- listen()的backlog参数和未完成队列、已完成队列的关系
- listen()的backlog参数和未完成队列、已完成队列的关系
- listen->backlog
- socket的同步异步的性能差别,以及listen的参数backlog
- c#学习笔记之十 socket编程的listen()方法参数的理解,即backlog
- 关于Linux socket编程之listen函数的第二个参数backlog.
- Linux socket 编程API listen(SOCKET s, int backlog)
- listen的参数backlog的意义
- listen函数中backlog参数的意义
- vuex用法(个人理解,还在学习)
- 图像三维重建方法综述
- Basic git command
- HDU-3487 Play with Chain (splay好题 带翻转 cut-link操作)
- 观光公交——堆优化
- python-socket.listen(backlog)-等待队列的长度
- linux 批量删除key值
- 【bzoj 1053/P1463】反素数 HAOI2007(爆搜)
- 设计模式之观察者模式
- 解决maven update project 后项目jdk变成1.5的问题
- 695. Max Area of Island
- opencv-资料分享
- 2017.10之maomade Start
- Vim命令合集