在 Perl 中,我可以做到
socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
bind(SERVER, $my_addr);
listen(SERVER, SOMAXCONN);
$client_address = accept(CLIENT, SERVER);
$line = <CLIENT>; # Read until newline or EOF
print $line
当通过浏览器访问它时$line = <CLIENT>
将返回并打印而不会阻塞。如果我在 python 中尝试相同的操作,请执行以下操作
from socket import *
host = ""
port = 9000
address = (host, port)
server = socket(AF_INET, SOCK_STREAM)
server.bind(address)
server.listen(SOMAXCONN)
client, addr = server.accept()
client_fd = client.makefile()
data = client_fd.readlines()
print data
client_fd.readlines()
除非我在浏览器中终止请求,否则会阻塞。有没有办法解决这个问题?为什么<CLIENT>
在 perl 中没有阻塞?