Python で小さなチャット サーバーとクライアントのペアを実装しようとしています。サーバーとクライアントの両方を既に作成しましたが、Web サイトでサーバーを実行しようとすると少し問題が発生します。
この例はドキュメントからのものです。複数のクライアントをサポートするために少し変更しました。
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 9090
BUFFER_SIZE = 256
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
while True:
conn, addr = s.accept()
print('Connection address:', addr)
while True:
data = conn.recv(BUFFER_SIZE)
if not data: continue
# handle the request
conn.close()
このサーバーは while ループを使用します。つまり、一度だけ実行する必要があります。ただし、サーバーを 1 回だけ実行する方法がわかりません。
複数のクライアントを操作するためにループ内でsocket.accept()
実行する必要があることは理解していますが、問題は実際に Web サーバーで実行していて、接続を永久に待機させていることです。while
助けて!〜チャンス