使用socket.sendto(bytes,address)时,Python“ OSError:[WinError 10057]不允许发送或接收数据的请求...”

时间:2019-05-18 13:06:39

标签: sockets python-3.6

我试图学习python中的TCP连接,所以我试图创建一个聊天框。

在此微型程序中,客户端服务器应向服务器发送“ Hello World”,并且服务器将返回“ Hello tiny one”。

程序的第一部分工作(客户端将数据发送到服务器),但是,当服务器将一些数据发送回时,程序崩溃。

我尝试过:  serverSoc.sendall(bytes(“ hello tiny one”,“ utf”)) 但这给了我一个错误

客户代码为:

#creates a client socket
clientSoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#connects to a server
clientSoc.connect(("127.0.0.1",80))
print("Connection enabled\n You are the client")


clientSoc.send(bytes("Hello World!","utf-8"))
data = clientSoc.recv(1024)
print(data.decode())

服务器代码为:

serverSoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#becomes a server 
serverSoc.bind(("127.0.0.1",80))

print("You are now The Server.")


serverSoc.listen(1)

while (True):
    #get s the content of the connection(conn) and the address(addr) 
    conn, addr = serverSoc.accept()

    #shows the address
    print("Connected to "+ str(addr))

    data = conn.recv(1024)
    print("%s: %s"%(str(addr),data.decode()))

    #send back some data
    serverSoc.sendto(bytes("Hello tiny one.","utf-8"),addr)
    conn.close()
serverSoc.close()

我想执行的操作是客户端为通信提供服务(成功),然后将服务器发送给客户端,并出现此错误:

OSError:[WinError 10057]不允许发送或接收数据的请求,因为未连接套接字,并且(当使用sendto调用在数据报套接字上发送时)未提供地址

0 个答案:

没有答案