Pythonでソケットを使用して、簡単なチャットツールを作成します

ソケットはPythonに付属するパッケージであり、追加のインストールは必要ありません

準備完了:

  1. 仮想マシン(VMware)がインストールされた1台のコンピューター(または2台のコンピューター( ̄︶ ̄)↗)
  2. ホストと仮想マシンの両方にPythonがインストールされており、両方にIDEがあります

私の構成:

  1. win10ホスト、Ubuntu仮想マシン
  2. IDEはpycharmです

チャットツールを作成する前に、ホストと仮想マシンのIPを知る必要があり
ます。Ubuntuの場合は、右クリックしてターミナルを開き、コマンドを入力してIPを表示します。

ifconfig

winの場合、win + cmdでターミナルを開き、コマンドを入力してIPを表示します

ipconfig

私の勝利ホストIPと仮想マシンIPはそれぞれです

192.168.1.2 # win
192.168.48.142 # Ubuntu

IPがわかっていれば設定できます

勝った場合、コードは次のとおりです

import socket
def main():
    local_addr = ('192.168.1.2', 8080) # win主机ip和端口号(端口号自定,不和其他软件冲突就好)
    dest_addr = ('192.168.48.142', 8877) # Ubuntu虚拟机ip和端口号 
    while True:
        # 创建udp套接字
        socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        # 绑定win主机ip
        socket_udp.bind(local_addr)
        # 接受虚拟机传来的文件,1024为最大字节数
        data_to_receive = socket_udp.recvfrom(1024)
        # 将接收到的信息打印出来
        print(data_to_receive[0].decode('utf-8'))
        # 输入发送的内容
        data_to_send = input("please enter:")
        socket_udp_send.sendto(data_to_send.encode('utf-8'), dest_addr)
        # 关闭套接字
        socket_udp_send.close()
if __name__ == '__main__':
    main()


Ubuntuでは、コードは次のとおりです(上記とほぼ同じ)

import socket
def main():
    local_addr = ('192.168.48.142', 8877)
    dest_addr = ('192.168.1.2', 8080)
    while True:
        socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        socket_udp.bind(local_addr)
        data_to_send = input("please enter:")
        socket_udp.sendto(data_to_send.encode('utf-8'), dest_addr)
        data_to_receive = socket_udp.recvfrom(1024)
        print(data_to_receive[0].decode('utf-8'))
        socket_udp.close()
if __name__ == '__main__':
    main()

チャットの効果は次のとおりです
。Winコードが最初に受信されてから送信されるため、Ubuntuが最初に送信されてから受信されるため、最初にUbuntuに入力してください。このコードは、1人と1文の半二重チャットモードです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_41459262/article/details/106798801
おすすめ