python中的select.select需要1-3个参数序列
我不断收到这个错误,1-3个参数需要序列python中的select.select需要1-3个参数序列,python,sockets,Python,Sockets,我不断收到这个错误,1-3个参数需要序列 import socket # Import socket module import sys import select s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Create a socket object host = "127.0.0.1" # Get local machine name port = 50001
import socket # Import socket module
import sys
import select
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Create a socket object
host = "127.0.0.1" # Get local machine name
port = 50001 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
a = []
b = []
s.listen(1) # Now wait for client connection.
c, addr = s.accept() # Establish connection with client.
s.setblocking(0)
ready = select.select(s, s, s, 1) # i believe the error lies in here
while True:
print "reached"
if ready[0]:
print "reached1"
data = mysocket.recv(4096)
print 'Got connection from', addr
c.send('Thank you for connecting \r\n') #all strings have to end with /r/n!!!
print "sent"
c.close() # Close the connection
错误
Select.Select参数1-3必须是序列
我是python新手,因此不确定错误是什么。我在谷歌上搜索了另一篇文章中的select代码,因为我希望我的recv套接字是非阻塞的将三个列表作为参数,rlist
,wlist
和xlist
:
- rlist:等待阅读准备就绪
- wlist:等待,直到准备好写作
- xlist:等待“异常情况”(请参阅手册页了解您的系统如何考虑这种情况)
ready = select.select([s], [s], [s], 1)
同样,返回值将是三个列表的元组,第一个包含准备读取的套接字,第二个套接字准备写入,第三个套接字处于“异常条件”
还要注意,在while循环中,您从不更新ready
,因此您将始终使用相同的套接字列表。另外,您应该在某个地方有一个中断
,否则您将以无休止的循环调用c.send
。将三个列表作为参数,rlist
,wlist
和xlist
:
- rlist:等待阅读准备就绪
- wlist:等待,直到准备好写作
- xlist:等待“异常情况”(请参阅手册页了解您的系统如何考虑这种情况)
ready = select.select([s], [s], [s], 1)
同样,返回值将是三个列表的元组,第一个包含准备读取的套接字,第二个套接字准备写入,第三个套接字处于“异常条件”
还要注意,在while循环中,您从不更新ready
,因此您将始终使用相同的套接字列表。另外,您应该在某个地方有一个中断
,否则您将在一个无休止的循环中调用c.send