手机网站开发升上去,东晓南门户网站制作,室内设计很多人都干不下去了,网站项目建设策划书实验代码的环境是在windows#xff0c;和linux是有差别的
在Windows系统上#xff0c;select模块需要传递特定的对象类型#xff0c;而不是文件描述符。在Unix-like系统上#xff0c;文件描述符是一个整数#xff0c;而在Windows上#xff0c;select期望得到的是socket对…实验代码的环境是在windows和linux是有差别的
在Windows系统上select模块需要传递特定的对象类型而不是文件描述符。在Unix-like系统上文件描述符是一个整数而在Windows上select期望得到的是socket对象本身而不是它们的文件描述符。
import select
import socket
import sys# 创建一个TCP/IP套接字
server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((localhost, 8080)) # 绑定到任意可用端口
server_socket.listen(5) # 开始监听最多允许5个连接排队# 设置非阻塞模式
server_socket.setblocking(0)# 准备socket列表用于select监听
inputs [server_socket]# 无限循环处理IO
while True:# 调用select等待socket就绪readable, writable, exceptional select.select(inputs, [], [])# 遍历就绪的socketfor s in readable:if s is server_socket:# 处理新的连接client_socket, client_address server_socket.accept()print(新连接:, client_address)client_socket.setblocking(0)inputs.append(client_socket)else:# 处理已连接的客户端发送的数据data s.recv(1024)if data:print(从客户端接收:, data.decode())else:# 如果客户端关闭连接则移除socketprint(客户端断开连接)inputs.remove(s)s.close()# 注意这个例子仅用于演示目的并未包含完整的错误处理和资源清理。
客户端代码参考实验1