質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.43%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

3回答

1035閲覧

if not data: breakの意図

yagi1218

総合スコア21

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/01/30 11:05

編集2021/01/30 11:16

pythonでソケットサーバー

pythonの公式ドキュメントを参考に開発しているが
ソースコードに処理内容の不明な点があった

該当のソースコード

python

1# Echo server program 2import socket 3 4HOST = '' # Symbolic name meaning all available interfaces 5PORT = 50007 # Arbitrary non-privileged port 6with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 7 s.bind((HOST, PORT)) 8 s.listen(1) 9 conn, addr = s.accept() 10 with conn: 11 print('Connected by', addr) 12 while True: 13 data = conn.recv(1024) 14 if not data: break 15 conn.sendall(data) 16
if not data: break という処理の意図を教えてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2021/01/30 11:10 編集

breakする意図が分からないのかその構文自体が理解出来ないのか
yagi1218

2021/01/30 11:13

break する意図が分かりません
errormaker74

2021/01/30 11:22

breakしないと受信データがないのに送信('conn.sendall')してしまうからでは?
hentaiman

2021/01/30 11:43

このコメント欄に正当がついてるのでその補足として。 ifの条件を反対にする事で何を意図しているのか理解出来る事と思われます。
guest

回答3

0

どこかからコネクションがあればずっと受取ったデータをオウム返しに送り続け、相手がコネクションを切断するとb''を受け取るので、ループから抜けて処理を終了するという意味なのだと思います。

投稿2021/01/30 12:09

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ソケットから取得できるデータ(クライアントから送信されるデータ)を最後までちゃんと取得する為です

投稿2021/01/30 11:53

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

dataがfalseであればwhile文をbreakする通常のif文です。

dataはbytesオブジェクトのようなので、dataが0(False)の時はbreakするということではないでしょうか。

上記は見当違いのことを書いています。申し訳ありません。
他の方の回答を参考にしてください。

投稿2021/01/30 11:13

編集2021/01/30 12:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.43%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問