1

次のコードを記述してデータを受信し、データをファイルに書き込みます。

私の質問は: if ブランチ (" if not data: break ") が実行されないことがわかりました、1)。if ブランチに到達しないのはなぜですか? 2)。コードが while ループを終了するにはどうすればよいですか?

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/var/run/output.socket")

while True:
    data = s.recv(1024)
    if not data:
        break
    else:
        f = open("/home/ematt/test.log",'a')
        f.write(data)
4

2 に答える 2

0

socket.recv には常にデータがあります。何らかのデータが到着するまで待機します。

https://docs.python.org/2/library/socket.htmlを参照してください

于 2016-01-07T09:47:57.927 に答える