udp_socket聊天器demo
阿新 • • 發佈:2018-11-12
1 # -*- coding:utf-8 -*- 2 # Author:Sure Feng 3 import socket 4 5 6 def send_msg(udp_socket): 7 """獲取鍵盤資料,並將其傳送給對方""" 8 # 獲取對方ip、埠 9 dest_ip = input("請輸入對方的ip") 10 dest_port = input("請輸入對方的埠") 11 # 獲取要傳送的資訊 12 msg = input("請輸入要傳送的資訊") 13 # 按照utf8編碼後,傳送資料 14 udp_socket.sendto(msg.encode("utf-8"), (dest_ip, int(dest_port))) 15 16 17 def rece_msg(udp_socket): 18 # 接收資料 19 msg = udp_socket.recvfrom(1024) 20 # 解碼 21 recv_ip = msg[1] 22 recv_msg = msg[0].decode("utf-8") 23 # 顯示解碼後資料 24 print("%s:%s" % (str(recv_ip), recv_msg)) 25 26 27 def main(): 28 # 建立套接字29 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 30 # 繫結本地資訊 31 udp_socket.bind(("", 9890)) 32 while True: 33 print("=" * 30) 34 print("1:傳送訊息") 35 print("2:接收訊息") 36 print("=" * 30) 37 op_num = input("請輸入要操作的功能序號:") 38 39 #根據需求呼叫相應的函式 40 if op_num == "1": 41 send_msg(udp_socket) 42 elif op_num == "2": 43 rece_msg(udp_socket) 44 else: 45 print(">>> 輸入有誤,請重新選擇") 46 47 48 # 關閉套接字 49 udp_socket.close() 50 51 52 if __name__ == "__main__": 53 print("main") 54 main()