BZ易风

导航

 
 1 # 导入套接字包
 2 import socket
 3 
 4 
 5 def welcome():
 6     print("------欢迎进入UDP聊天器--------")
 7     print("1.发送信息")
 8     print("2.接收信息")
 9     print("0.退出聊天器")
10 
11 def send_msg(udp_socket):
12     dest_ip = input("请输入目标ip:")
13     dest_port = int(input("请输入目标端口:"))
14     send_data = input("请输入要发送的内容")
15     # sendto(内容,(目标IP,端口))
16     udp_socket.sendto(send_data.encode("gbk"), (dest_ip, dest_port))
17 
18 
19 def recv_msg(udp_socket):
20     # recvfrom(接收最大字节)
21     rece_data = udp_socket.recvfrom(1024)
22     # 要解码,不然会乱码
23     print("%s:%s" % (rece_data[1], rece_data[0].decode("gbk")))
24 
25 
26 def main():
27     # 创建套接字对象
28     udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
29     # 绑定端口
30     # bing((ip,port)) bind里面是一个元组,第一个放ip 可以为空,第二个是端口
31     udp_socket.bind(('',7788))
32     while True:
33         # 欢迎菜单
34         welcome()
35         # 选择功能
36         op = input("请输入想要执行的命令:")
37         if op == "1":
38             # 发送信息
39             send_msg(udp_socket)
40         elif op == "2":
41             # 接收信息
42             recv_msg(udp_socket)
43         elif op == "0":
44             break
45         else:
46             print("请选择正确的指令:")
47     # 关闭套接字
48     udp_socket.close()
49 
50 if __name__ == '__main__':
51     main()

 

posted on 2019-08-18 12:11  BZ易风  阅读(501)  评论(0编辑  收藏  举报