中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

發布時間:2022-01-04 00:41:44 來源:億速云 閱讀:137 作者:柒染 欄目:開發技術

這篇文章將為大家詳細講解有關Python如何制作簡易聊天器以及搭建UDP網絡通信模型,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

前言:

互聯網的本質是什么?其實就是信息的交換。就比如我們常用的QQ、微信等。那么如何將自己的信息發送到其他人的電腦上呢?

那就需要借助網絡模型來完成這樣的事情了。今天就帶領大家使用UDP網絡模型來完成一個簡單的聊天器

分享內容:

  • python中的套接字實現

  • 如何與Ubuntu建立通信

  • 發送/接收消息

環境:

  • windows

  • Ubuntu

  • python3

  • pycharm

1.導入模塊

import socket

socket是套接字,鏈接電腦并且接收/發送消息的一個對象

socket有兩種類型:udptcp

  • udp比較簡單 不安全 丟包的情況 速度快

  • tcp比較復雜的網絡模型 安全 速度慢

2.創建一個套接字對象

def main():
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

udp需要借助網絡:IP協議
IP協議分為兩種:IPv4和IPv6
PC電腦采取的是IPv4,IPv6一般是移動端使用:手機

3.發送數據到ubuntu系統中

udp_socket.sendto(b'hello python', ('192.168.3.40', 8080))
udp_socket.close()

4.發送任意數據給網絡條數助手

def main():
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    send_data = input('請輸入任意字符:')
    udp_socket.sendto(send_data.encode('utf-8'), ('192.168.3.40', 8080))
    udp_socket.close()

5.循環發送數據

def main():
    # 創建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 循環發送
    while True:
        send_data = input('請輸入你想要發送的數據:')
        udp_socket.sendto(send_data.encode('utf-8'), ('192.168.3.40', 8080))
        if send_data == "exit":
            break

    udp_socket.close()

6.循環接受數據

綁定本機信息 告訴ubuntu我的當前地址以及端口

def main():
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    localhost_addr = ('', 6666)
    udp_socket.bind(localhost_addr)

循環接收

while True:
    recv_data = udp_socket.recvfrom(1024)
    # 元組解包
    recv_msg, recv_addr = recv_data
    print(recv_msg.decode('utf-8'), recv_addr)

將相關的功能抽離出來做成一個函數

發送消息:

def send_msg(udp_socket):
    msg = input('請輸入你想要發送的消息:')
    udp_socket.sendto(msg.encode('utf-8'), ('192.168.3.40', 8080))

接收消息:

def recv_msg(udp_socket):
    # 接收
    msg = udp_socket.recvfrom(1024)
    # 解碼
    recv_msg = msg[0].decode('utf-8')
    print(recv_msg)

發送 / 接收 功能:

def main():
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    udp_socket.bind(('', 6666))

    while True:
        op_num = input('請輸入要操作的功能序號 [1.發送消息 2.接收消息]:' )
        # 根據用戶輸入的數字去調用相關的功能
        if op_num == "1":
            send_msg(udp_socket)
        elif op_num == "2":
            recv_msg(udp_socket)
        else:
            print('輸入有誤, 請重新輸入...')

7.啟動

if __name__ == '__main__':
    main()

最后運行代碼

發送消息:

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

接收消息:

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

Python如何制作簡易聊天器以及搭建UDP網絡通信模型

關于Python如何制作簡易聊天器以及搭建UDP網絡通信模型就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商水县| 和政县| 崇明县| 泊头市| 德兴市| 崇左市| 阳春市| 咸阳市| 会泽县| 杂多县| 邯郸县| 财经| 崇左市| 天全县| 汉寿县| 延津县| 鸡东县| 达拉特旗| 旬邑县| 光山县| 东方市| 大余县| 宜君县| 肥城市| 涞源县| 安徽省| 石门县| 林周县| 米泉市| 黄骅市| 广宗县| 乌拉特后旗| 威远县| 黔江区| 南丹县| 拉孜县| 册亨县| 县级市| 南宁市| 平和县| 郑州市|