Pythonはudpチャットウィンドウを実装します

相互に通信するには、udpとtcpの2つの方法があります。qqと同様に、udpとtcpは共存しますが、現在、qqは徐々にtcpサーバーに変換されています。

以下は、udpで実装されたチャットウィンドウです。

import socket
def send_msg(upd_socket):"""メッセージを送る"""
 # 送信するものを取得する
 dest_ip =input("相手のIPアドレスを入力してください:")
 dest_port =int(input("相手のポート番号を入力してください:"))
 send_data =input("送信するメッセージを入力してください")
 upd_socket.sendto(send_data.encode("utf-8"),(dest_ip, dest_port))
def recv_msg(upd_socket):
 # データを受信して表示する
 recv_data = upd_socket.recvfrom(1024)print("%s:%s"%(recv_data[0].decode("utf-8"),str(recv_data[1])))
def main():
 # ソケットを作成する
 upd_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 # バインディング情報
 upd_socket.bind("",7788)
 # 物事を処理するためのループ
 while True:send_msg(upd_socket)recv_msg(upd_socket)if __name__ =="__main__":main()

このようなコードを書くためのフォーマットをお勧めします。最初に基本的なフレームワークを構築します

def main():
 pass
 # 1. ソケットを作成する
 # 2. ローカル情報をバインドする
 # 3. 宛先アドレスとポート番号を知っている
 # 4. データを受信して表示する
 # 5. ソケットを閉じる
if __name__ =="__main__":main()
  1. これが基本的なステップです。最初に思いついたので、代表者を書き始めました。コードは比較的固定されています。質問する必要があるのは、データの送受信にutf-8とgbkのどちらを使用するかです。私たちはLinuxシステムであり、ターゲットはWindowsシステムであるため、送信するデータは.encode( "gbk")でエンコードする必要があり、データを受信すると、正しく受け入れられるように.decode( "gbk")でデコードされます。漢字。

  2. 次に、メインプログラムをわかりやすくするために、メッセージを送受信し、** def send_msg(upd_socket): def recv_msg(upd_socket):**の2つの関数にラップします。注、新しい関数を作成するときはいつでも、この関数はパラメーターを必要としないと考えなければなりません。

  3. 最後に、closeを呼び出す必要がないことがわかるため、ソケットを閉じるためにudp_socket.close()を記述しなかったことがわかります。

  4. pyhtonでは、ループを使用する場合、1を記述せず、Trueを記述します。

pythonチャット機能に関するさらにすばらしい記事については、トピックをクリックしてください:pythonチャット機能の概要

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

Pythonはudpチャットウィンドウを実装します
Pythonはスーパーマリオを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはマンマシンゴバンを実装します
PythonはTetrisゲームを実装しています
Pythonは画像スティッチングを実装しています
Pythonはminesweeperゲームを実装しています
Pythonはスキャンツールを実装しています
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています
PythonはWeChat飛行機ゲームを実装しています
Pythonは単語推測ゲームを実装しています
Pythonは推測ゲームを実装しています
Pythonは駐車場管理システムを実現
Pythonはデジタル爆弾ゲームを実装しています
PythonはTCPファイル転送を実装します
Pythonnumpyはローリングケースを実装します
OpenCVPythonはパズルゲームを実装しています
Pythonは単純なtic-tac-toeゲームを実装しています
Pythonはパスワード強度検証を実装します
Pythonは車の管理システムを実装しています
Pythonはコードブロックフォールディングを実装します
Pythonはパノラマ画像スティッチングを実装しています
PythonはSMTPメール送信を実装します
Pythonは多次元配列ソートを実装しています
PythonがFTP機能を実装する方法
Pythonは平均シフトクラスタリングアルゴリズムを実装しています
Pythonは検証コード認識を実装します
Pythonは勾配降下法を実装しています
Pythonはテキストバージョンのminesweeperを実装しています
Pythonは画像スティッチング機能を実装しています
Pythonは実店舗のゲームを実装しています
Pythonは学生のパフォーマンス評価システムを実装しています
Pythonがメール機能を実装する方法
Pythonは単にスネークゲームを実装します
Python3はシングルトンデザインパターンを実装しています
Pythonは為替レート変換操作を実装します
Pythonは文字列と数値のスプライシングを実装します
Pythonは10の古典的なソートアルゴリズムを実装しています
PythonはユニバーサルWebフレームワークを実装しています
Pythonは、メールを送信するために126のメールボックスを実装しています
PythonはAIフェイスチェンジ機能を実装しています
Pythonは最も急な降下方法を実装します
Pythonは実際の銀行システムを実装しています
Pythonはデジタル爆弾ゲームプログラムを実装しています
Pythonはftpファイル転送機能を実装しています
Pythonはudp送信画像機能を実現します
Pythonはユーザー名とパスワードの検証を実装しています
Pythonがタイマー機能を実装する方法
Pythonは航空機戦争プロジェクトを実装します
Excelを比較し、Pythonウィンドウ関数を学ぶ
Pythonは写真の水平ステッチを実装しています
PythonはGIFグラフを逆さまに実装します