首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSError:[WinError 10057]

OSError:[WinError 10057]
EN

Stack Overflow用户
提问于 2021-07-10 01:21:12
回答 1查看 49关注 0票数 0
代码语言:javascript
复制
import socket
import threading
host = '127.0.0.1'
port = 36250

def RetrFile(sock):
  from account import posts
  filename = 'posts.txt'
  for item in posts(filename):
    sock.send(item)
  sock.send("DONE".encode())

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
  h_name = socket.gethostname()
  IP_address = socket.gethostbyname(h_name)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  s.bind((IP_address,port))
  print("Server started")
  print("IP address:", IP_address)

  while True:
    print("Waiting for clients...")
    s.listen()
    c, addr = s.accept()
    print("Client connected, IP: " + str(addr))
    data = s.recv(1024)
    if data == "POSTS".encode():
      t = threading.Thread(target=RetrFile, args=(c))
      t.start()
  s.close()

错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\####\Downloads\Social-media-server (1)\main.py", line 26, in <module>
    data = s.recv(1024)
OSError: [WinError 10057] En begäran att skicka eller ta emot data tilläts inte eftersom socketen inte är ansluten och (när du skickar på en datagramsocket med hjälp av ett sendto-anrop) ingen adress angavs

翻译:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\####\Downloads\Social-media-server (1)\main.py", line 26, in <module>
    data = s.recv(1024)
OSError: [WinError 10057] A request to send or receive data was not allowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was specified

我已经尝试过sendall,但是它没有改变任何东西,我能做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-10 01:36:10

以下是问题所在:

代码语言:javascript
复制
data = s.recv(1024)

从接受的客户端套接字读取时应为c.recv,而从侦听套接字读取时应为s.recv

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68320655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档