当前位置: 首页 > 知识库问答 >
问题:

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

许亦
2023-03-14

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

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,))```

共有1个答案

卢毅
2023-03-14

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

 类似资料:
  • 我正在阅读SAML规范,并尝试和IDP,我不确定如何在SP启动的登录中实现一个特性。

  • 我用苹果脚本做了一个叫做星期五的应用程序。当我告诉它“打开chrome”时,它会打开谷歌chrome,这是在脚本编辑器和脚本编辑器之外工作的。我也可以告诉它“打开一个新标签”,它会用击键打开一个新标签: 现在,上面的代码只在我在脚本编辑器上运行FRIDAY时有效,但在我将FRIDAY保存为应用程序并运行它时无效。 脚本编辑器和我的应用程序(星期五)具有可访问性,实际上星期五具有完整的磁盘可访问性。

  • 我正在尝试使用WCF代码中的TCP套接字连接到远程外部服务器我的WCF服务是一个客户端,它的代码使用套接字连接到外部服务器。此代码向外部服务器发送请求并接收服务器响应 如果我使用相同的客户端代码创建一个windows应用程序以连接到远程服务器,则成功。我能够连接、发送和接收此错误仅在我将WCF带入图片时发生。代码在if(m_socket失败。连接)。因此无法成功连接。 非常感谢。

  • 我正在Pygame中创建一个游戏,它需要多人游戏的客户端服务器部分。 首先,我正在检查是否有少于两个连接。如果是这种情况,客户端将显示一个屏幕,上面写着“等待连接”。 我已使客户端成功地向服务器发送“1”消息,如果服务器未满,服务器将以“1”响应。因此,如果服务器没有响应1,则服务器已满,客户端可以继续。 然而,我在标题中提到了这个错误。 服务器代码: 调用它的客户端代码: 服务器代码中的s.se

  • 我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:

  • 我用Spring靴和Spring安全。 我这样添加基于url的安全性 有没有办法只授权get、post、put…在url上担任某些角色?