Python s.recv()返回空字符串
我在在线教程中找到了一个简单的客户端和服务器Python s.recv()返回空字符串,python,sockets,server,Python,Sockets,Server,我在在线教程中找到了一个简单的客户端和服务器 当我运行client.py时,它所做的就是在应该打印的时候打印一个空字符串(“感谢您的连接”)。当我从telnet连接localhost 12345时,它会很好地发送消息,所以我不知道为什么我的客户端没有收到消息 任何想法。我对socket编程非常陌生,希望找到一个解决方案,以便继续。按原样运行脚本时,我遇到以下错误: Waiting connections ... Got connection from ('127.0.0.1', 63875
当我运行c
lient.py时,它所做的就是在应该打印的时候打印一个空字符串(“感谢您的连接”)。当我从telnet连接localhost 12345时,它会很好地发送消息,所以我不知道为什么我的客户端没有收到消息
任何想法。我对socket编程非常陌生,希望找到一个解决方案,以便继续。按原样运行脚本时,我遇到以下错误:
Waiting connections ...
Got connection from ('127.0.0.1', 63875)
Traceback (most recent call last):
File "serv.py", line 14, in <module>
c.send('Thank you for connecting')
TypeError: a bytes-like object is required, not 'str'
另外,像这样声明套接字s
也很有用:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
进一步案文:
- Py2:
- Py3:
希望它能起作用!:) 我无法再现你的处境。代码对我来说就像预期的那样工作。你使用的是什么版本的Python?我使用的是2.7.14我假设教程使用的是2而不是3,因为打印不是函数调用。您使用的是什么版本?我无法在Linux上使用Python 2.7.13生成上述行为。顺便说一句-由于缺少()
,您的客户端在关闭套接字时没有关闭。感谢您的回复,不幸的是,问题与以前相同。我只是得到一个空字符串回来。而且我从来没有收到过你收到的错误信息。我开始认为这个问题与代码无关。
Waiting connections ...
Got connection from ('127.0.0.1', 63875)
Traceback (most recent call last):
File "serv.py", line 14, in <module>
c.send('Thank you for connecting')
TypeError: a bytes-like object is required, not 'str'
c.send(b'Thank you for connecting')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)