Python套接字奇怪的行为

2024-09-30 04:32:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白为什么这个代码可以正常工作

echo as3333 | nc stat.ripe.net 43

但是Python中的等效代码不返回任何内容

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('stat.ripe.net', 43))
sock.send('as3333'.encode('utf-8'))
tmp = sock.recv(1024)
print(tmp.decode('utf-8')) #no bytes there
sock.close()

谢谢!你知道吗


Tags: 代码importecho内容netsockettmpstat
1条回答
网友
1楼 · 发布于 2024-09-30 04:32:41

不完全一样。你忘了换行和sendall。固定代码:

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('stat.ripe.net', 43))
sock.sendall('as3333\r\n'.encode('utf-8'))

response = b''
while True:
    tmp = sock.recv(65536)
    if not tmp:
        break
    response += tmp

print(response.decode('utf-8'))
sock.close()

相关问题 更多 >

    热门问题