Python 不允许数据发送?[WinError 10057]

Python 不允许数据发送?[WinError 10057],python,sockets,tcp,server,Python,Sockets,Tcp,Server,我知道这是服务器上的一个错误,在使用s变量时,应该使用conn变量,但我已经在这里坐了2个小时,看不到错误。错误:[WinError 10057]不允许发送或接收数据的请求,因为套接字未连接,并且(使用sendto调用在数据报套接字上发送时)未提供地址 我的代码: 我知道了!根据其他人的[WinError 10057]问题,服务器拒绝使用某个sock变量。6个小时后,我决定检查我的客户机代码,结果是我首先在\uuuu init\uuu函数中将client变量声明为普通套接字。然后在myconne

我知道这是服务器上的一个错误,在使用
s
变量时,应该使用
conn
变量,但我已经在这里坐了2个小时,看不到错误。错误:
[WinError 10057]不允许发送或接收数据的请求,因为套接字未连接,并且(使用sendto调用在数据报套接字上发送时)未提供地址
我的代码:


我知道了!根据其他人的
[WinError 10057]
问题,服务器拒绝使用某个sock变量。6个小时后,我决定检查我的客户机代码,结果是我首先在
\uuuu init\uuu
函数中将
client
变量声明为普通套接字。然后在my
connect
函数中,获取此变量并将其修改为已连接变量(因此发送和接收函数在该函数中工作)。然后,我的send函数重新读取原始套接字(非连接)并使用它发送(失败)。因此,我做了非常复杂的等效版本(用服务器的话来说),执行
conn,addr=s.accept()
然后使
old_s=s
然后s=conn,然后愚蠢地重置conn=old_s。这是我能解释的最好的了。如果你一个字都不懂,我很抱歉。

你说得对。你确定这是真的代码吗?注意,我建议你不应该向被禁止的IP发送任何东西。不要向他们泄露任何信息。只需关闭连接。请问这会导致什么泄漏?奇怪的是,这是我的代码,除了ipIt之外,直接复制和粘贴会泄露以下信息:(a)IP:端口存在,以及(b)您将其IP:端口识别为坏角色的IP:端口。这两条信息都可能对攻击者有用。别告诉他们胡说八道。
import socket
from _thread import *

server = '123.456.78.9'
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()
print("Waiting for connections, server has been started")

def threaded_client(conn):
    reply = ""
    conn.sendall(str.encode("[Server, Server]Mis:200:Connected"))
    while True:
        try:
            data = conn.recv(2048)
            reply = data.decode("utf-8")
            
            if not data:
                print("Disconnected from", addr[0])
                break
            
            print("Received: ", reply)
            print("Sending: ", reply)  
            conn.sendall(str.encode(reply))
        except:
            break
    print("Connection to", addr[0], "has been lost!")
    conn.close()

while True:
    conn, addr = s.accept()
    banlist = open('bannedip.bipf')
    if addr[0] in banlist.read():
        conn.sendall(str.encode("[Server, Server]Err:401:Banned"))
        conn.close()
        print("Banned ip", addr[0], ", was disconnected as their ip (", addr[0], ") is listed in the ban file")
    else:
        print("Connected to:", addr[0])
        start_new_thread(threaded_client, (conn,))```