Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 聊天应用程序中的套接字错误尝试对非套接字的内容执行错误操作_Python_Sockets - Fatal编程技术网

Python 聊天应用程序中的套接字错误尝试对非套接字的内容执行错误操作

Python 聊天应用程序中的套接字错误尝试对非套接字的内容执行错误操作,python,sockets,Python,Sockets,我正在尝试在python上创建一个简单的聊天应用程序。我已经从中引用创建了client.py和server.py 运行客户端代码时,服务器运行正常,错误如下 为了解决这个问题,我重置了winsock,并尝试从中重新安装tcp/ip 我如何解决这个问题 client.py 你能告诉我们client.py的代码吗?似乎在socket_列表中有一些不是socket的东西。在调用select之前,请尝试打印它的内容,看看我是否正确。这不是python的问题,而是windows的问题。看见 import

我正在尝试在python上创建一个简单的聊天应用程序。我已经从中引用创建了client.py和server.py

运行客户端代码时,服务器运行正常,错误如下

为了解决这个问题,我重置了winsock,并尝试从中重新安装tcp/ip

我如何解决这个问题 client.py


你能告诉我们client.py的代码吗?似乎在socket_列表中有一些不是socket的东西。在调用select之前,请尝试打印它的内容,看看我是否正确。这不是python的问题,而是windows的问题。看见
import socket, select, string, sys

def prompt() :
    sys.stdout.write('<You> ')
    sys.stdout.flush()

#main function
if __name__ == "__main__":

    if(len(sys.argv) < 3) :
        print 'Usage : python telnet.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. Start sending messages'
    prompt()

    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:
            #incoming message from remote server
            if sock == s:
                data = sock.recv(4096)
                if not data :
                    print '\nDisconnected from chat server'
                    sys.exit()
                else :
                    #print data
                    sys.stdout.write(data)
                    prompt()

            #user entered a message
            else :
                msg = sys.stdin.readline()
                s.send(msg)
                prompt()