2017-03-15 20 views
0

まあ、クライアントからサーバーにPythonでいくつかのバイトを受け取りたい。だから私は、クライアントからのいくつかの文字列を送信する:OLA、135およびA.Pythonでサーバーからデータを受信

サーバーのコード行は、次のとおりです。

while True: 
    # Receive the data one byte at a time 
    data = connection.recv(1) 
    file = open("test.txt", "w") 
    file.write(data) 
    file.close() 
    sys.stdout.write(data) 

私はtxtファイルにクライアントによってsendedでは、これらの文字列を書きたいです。しかし、私はサーバーですべての文字列を受け取った後、私は作成されたtxtファイルを開き、何もありません。なにが問題ですか?

+0

。これは私にとって無限のループのように見えます。あなたはいつループから抜け出していますか? – Afaq

+0

コードを続行:データがあれば : #はバック大文字 connection.sendall(data.upper())内の他の 送信:( 'これ以上のデータは、接続を閉じる') 印刷を ブレーク – Leonardo

答えて

0

pythonでは、ファイルを開くと"w"は前のファイルを削除します。だから、 "" 既存のデータを保持するために使用して

'w' for only writing (an existing file with the same name will be erased), and 'a' opens the file for appending;

while True: 
    # Receive the data one byte at a time 
    data = connection.recv(1) 
    file = open("test.txt", "a") # change 'w' to 'a' 
    file.write(data) 
    file.close() 
    sys.stdout.write(data) 

参考:ファイルは、追加モードで他の開いているファイルを書き込みモードで開いていない場合はhttps://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files

+0

だと思いますそのコード:data = connection.recv(1)完全な文字列を保存しないでください? – Leonardo

+1

@レオナルドそれは基本的に 'w'モードで開いているので、あなたのファイルの内容を書き換えます! [This](http://stackoverflow.com/questions/16208206/confused-by-python-file-mode-w)助けてくれるかもしれません! –

+0

@KeerthanaPrabhakaranそれは働いています。どうもありがとうございました。作成したファイルをWebページからリクエストできますか? – Leonardo

関連する問題