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がブロックされていないのですか?