首页 > 解决方案 > “OSError: [WinError 10022] An invalid argument was provided” 在 vps 上,但在本地系统上工作正常

问题描述

我有一个简单的套接字服务器,它接收来自客户端应用程序的请求,然后读取 csv 文件并使用该 csv 文件中的数据进行回复,在我的本地机器上,下面的代码工作正常,但是当我将此代码上传到基于 Windows 的 vps 时给出这个错误:

ServerSocket.listen(5) OSError: [WinError 10022] An invalid argument was supplied

我的代码:

import socket
import os
from _thread import *
import csv
ServerSocket = socket.socket()
host = '127.0.0.1'
port = 25556
ThreadCount = 0
try:
    ServerSocket.bind((host, port))
except socket.error as e:
    print(str(e))
print('Waitiing for a Connection..')
ServerSocket.listen(5)
def threaded_client(connection):
    while True:
        data = connection.recv(2048)
        symbolrcvd = data.decode('utf-8')
        print (symbolrcvd);
        with open('MyRatios.csv') as csvfile:
            readval = {row['Symbol']: row for row in csv.DictReader(csvfile)}
            data1=readval[symbolrcvd]['Ratio']
        reply = data1
        if not data:
            break
        connection.sendall(str.encode(reply))
    connection.close()
while True:
    Client, address = ServerSocket.accept()
    print('Connected to: ' + address[0] + ':' + str(address[1]))
    start_new_thread(threaded_client, (Client, ))
    ThreadCount += 1
    print('Thread Number: ' + str(ThreadCount))
ServerSocket.close()

什么可能导致这个问题?

标签: pythonpython-3.x

解决方案


推荐阅读