OSError:[WinError 10038]尝试对非套接字的对象执行操作-Python套接字?

OSError:[WinError 10038]尝试对非套接字的对象执行操作-Python套接字?,python,Python,客户端: import select import socket import sys from pip._vendor.distlib.compat import raw_input you = str(raw_input("Please Input your name: ")) def chat_client(): if len(sys.argv) < 3: print('Usage : python chat_client.py hostname po

客户端:

import select
import socket
import sys

from pip._vendor.distlib.compat import raw_input

you = str(raw_input("Please Input your name: "))


def chat_client():
    if len(sys.argv) < 3:
        print('Usage : python chat_client.py hostname port')
        sys.exit()

    host = sys.argv[1]
    port = int(sys.argv[2])

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(2)

    # connect to remote host
    try:
        s.connect((host, port))

    except:
        print('Unable to connect')
        sys.exit()

    print('Connected to remote host. You can start sending messages')
    sys.stdout.write(you + "=> ")
    sys.stdout.flush()

    while 1:
        socket_list = [sys.stdin, s]

        # Get the list sockets which are readable
        read_sockets, write_sockets, error_sockets = select.select(socket_list, [], [])

        for sock in read_sockets:
            if sock == s:
                # incoming message from remote server, s
                data = sock.recv(4096)
                if not data:
                    print('\nDisconnected from chat server')
                    sys.exit()
                else:
                    # print data
                    sys.stdout.write(data)
                    sys.stdout.write(you + "=> ")
                    sys.stdout.flush()

            else:
                # user entered a message
                msg = you + ":" + sys.stdin.readline()
                s.send(msg)
                sys.stdout.write(you + "=> ")
                sys.stdout.flush()


if __name__ == "__main__":
    sys.exit(chat_client())
运行客户端后,我收到以下错误:

回溯(最近一次调用):文件“C:/Users/David” Bialik/PycharmProjects/Ser/chat_client.py”,第63行,in sys.exit(chat_client())文件“C:/Users/David Bialik/PycharmProjects/Ser/chat_client.py”,第39行,在chat_client中 读插槽,写插槽,错误插槽=选择。选择(插槽列表,[],[])操作错误:[WinError 10038] 尝试对非套接字的对象执行操作


我想知道为什么会发生这种情况

错误是由以下几行引起的

socket_list = [sys.stdin, s] #<----here
read_sockets, write_sockets, error_sockets = select.select(socket_list, [], [])

socket_list=[sys.stdin,s]#错误是由以下几行引起的

socket_list = [sys.stdin, s] #<----here
read_sockets, write_sockets, error_sockets = select.select(socket_list, [], [])
socket\u list=[sys.stdin,s]#