微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OSError:[WinError 10022]提供了无效的参数流程以退出代码1完成

如何解决OSError:[WinError 10022]提供了无效的参数流程以退出代码1完成

我正在跟踪教程,并被卡在这里。当我第一次运行相同的代码时,一切顺利。但是从第二次起,它在同一代码显示错误。我重新启动计算机,然后又运行了一次,从第二次开始,它再次显示错误

代码

import socket
from _thread import *
import sys

server = "192.168.0.102"
port = 5555

s = socket.socket(socket.AF_INET,socket.soCK_STREAM)

try:
    s.bind((server,port))
except socket.error as e:
    str(e)

s.listen(2)
print("Waiting for a connection,Server Started")


def read_pos(str):
    str = str.split(",")
    return int(str[0]),int(str[1])


def make_pos(tup):
    return str(tup[0]) + "," + str(tup[1])


pos = [(0,0),(100,100)]


def threaded_client(conn,player):
    conn.send(str.encode(make_pos(pos[player])))
    reply = ""
    while True:
        try:
            data = read_pos(conn.recv(2048).decode())
            pos[player] = data

            if not data:
                print("disconnected")
                break
            else:
                if player == 1:
                    reply = pos[0]
                else:
                    reply = pos[1]

                print("Received : ",data)
                print("Sending: ",reply)

            conn.sendall(str.encode(make_pos(reply)))

        except:
            break

    print("Lost Connection")
    conn.close()


currentPlayer = 0
while True:
    conn,addr = s.accept()
    print("Connected to : ",addr)

    start_new_thread(threaded_client,(conn,currentPlayer))
    currentPlayer += 1

解决方法

尝试使用其他IP地址。当我使用127.0.0.1这是本地计算机时,代码可以正常工作。

server = "127.0.0.1"
port = 5555

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。