この記事では主に Python3 のソケット同期通信機能を紹介し、簡単な例の形で Python ソケット同期通信のクライアント側とサーバー側の実装テクニックを分析します。必要な方は参考にしてください
この記事では Python3 のソケット同期通信について説明します。例を通して。参考のために皆さんと共有してください。詳細は次のとおりです:
この記事は比較的シンプルで、初心者に適しています。将来のコピーを容易にするためにメモしておきます
1 つのサーバー、1 つのクライアント、ブロック方式であり、一度に 1 つのクライアント接続のみを受け入れて通信します。
クライアントが「bye」を送信してサーバーとの通信を終了すると、「shutdown」を送信すると、サーバーは自動的にシャットダウンします。
サーバーコード:
from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) quit = False shutdown = False while True: print('waiting for connection...') tcpCliSock, addr = tcpSerSock.accept() print('...connected from: ', addr) while True: data = tcpCliSock.recv(BUFSIZE) data = data.decode('utf8') if not data: break ss = '[%s] %s' %(ctime(), data) tcpCliSock.send(ss.encode('utf8')) print(ss) if data == 'bye': quit = True break elif data == 'shutdown': shutdown = True break print('Bye-bye: [%s: %d]' %(addr[0], addr[1])) tcpCliSock.close() if shutdown: break tcpSerSock.close() print('Server has been
クライアントコード:
from socket import * HOST = 'localhost' PORT = 21567 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) tcpCliSock.connect(ADDR) while True: data = input('>') if not data: continue print('input data: [%s]' %data) tcpCliSock.send(data.encode('utf8')) rdata = tcpCliSock.recv(BUFSIZE) if not rdata: break print(rdata.decode('utf8')) if data == 'bye' or data == 'shutdown': break tcpCliSock.close()
以上がPython3でのソケット同期通信の説明例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。