应用:udp聊天器
說明
-
在一個電腦中編寫1個程序,有2個功能
-
1.獲取鍵盤數據,并將其發送給對方
-
2.接收數據并顯示
-
并且功能數據進行選擇以上的2個功能調用
要求
實現上述程序
參考代碼
import socketdef send_msg(udp_socket): ? ?"""獲取鍵盤數據,并將其發送給對方""" ? ?# 1. 從鍵盤輸入數據 ? ?msg = input("\n請輸入要發送的數據:") ? ?# 2. 輸入對方的ip地址 ? ?dest_ip = input("\n請輸入對方的ip地址:") ? ?# 3. 輸入對方的port ? ?dest_port = int(input("\n請輸入對方的port:")) ? ?# 4. 發送數據 ? ?udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))def recv_msg(udp_socket): ? ?"""接收數據并顯示""" ? ?# 1. 接收數據 ? ?recv_msg = udp_socket.recvfrom(1024) ? ?# 2. 解碼 ? ?recv_ip = recv_msg[1] ? ?recv_msg = recv_msg[0].decode("utf-8") ? ?# 3. 顯示接收到的數據 ? ?print(">>>%s:%s" % (str(recv_ip), recv_msg))def main(): ? ?# 1. 創建套接字 ? ?udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ? ?# 2. 綁定本地信息 ? ?udp_socket.bind(("", 7890)) ? ?while True: ? ? ? ?# 3. 選擇功能 ? ? ? ?print("="*30) ? ? ? ?print("1:發送消息") ? ? ? ?print("2:接收消息") ? ? ? ?print("="*30) ? ? ? ?op_num = input("請輸入要操作的功能序號:") ? ? ? ?# 4. 根據選擇調用相應的函數 ? ? ? ?if op_num == "1": ? ? ? ? ? ?send_msg(udp_socket) ? ? ? ?elif op_num == "2": ? ? ? ? ? ?recv_msg(udp_socket) ? ? ? ?else: ? ? ? ? ? ?print("輸入有誤,請重新輸入...")if __name__ == "__main__": ? ?main()想一想
-
以上的程序如果選擇了接收數據功能,并且此時沒有數據,程序會堵塞在這,那么怎樣才能讓這個程序收發數據一起進行呢?別著急,學習完多任務知識之后就解決了O(∩_∩)O...
?
==================================================================
注:以上課程筆記為學習時整理的老師課堂學習筆記,如需轉載,如需完整筆記,請私聊聯系我。
專題Python每天更新我的學習筆記。以上內容整理與上課筆記,更多詳情查看原文鏈接,我的公眾號干貨持續更新中
原文鏈接:公眾號文章Python開發者交流平臺
轉載于:https://www.cnblogs.com/wangting888/p/9701955.html
總結
- 上一篇: 根据最大值和最小值获取对应的单元格值
- 下一篇: Git 使用帮助(下)