1. 程式人生 > >udp_socket聊天器demo

udp_socket聊天器demo

 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()