错误:执行时''套接字未连接':'socket.recv(1024)'

时间:2015-02-08 20:27:36

标签: python sockets

我收到此错误:

Traceback (most recent call last):
  File "./server.py", line 12, in <module>
    data = connexion.recv(1024)
socket.error: [Errno 57] Socket is not connected

server.py:

#!/usr/bin/python2.7
import socket

connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion.bind(('', 12800))
connexion.listen(5)

client, info = connexion.accept()

continuer = ""
while(continuer.upper() != "Q"):
    data = connexion.recv(1024) #I get the error here
    continuer = raw_input("")
else:
    connexion.close()

有人可以告诉我我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:3)

data = connexion.recv(1024) #I get the error here

应该是

data = client.recv(1024) 

答案 1 :(得分:3)

您正在从connexion套接字接收,而不是客户端套接字。

每个客户端套接字都绑定到另一个连接。但是服务器套接字(此处为connexion)接受客户端套接字,它不会重新发送/发送。

快速修复您的代码:

continuer = ""
while(continuer.upper() != "Q"):
    data = client.recv(1024)
    continuer = raw_input("")
else:
    client.close()

此外,我不确定别人会做些什么。 您应该在达到while条件后将其删除,无论如何都将关闭客户端套接字。

@Jeremy Friesner:比我快。但无论如何我都会发布答案,因为它更完成