Example #1
0
def send_file_msg():
    #接收用户输入的对方ip地址
    dest_ip = input("请输入对方ip地址(输入0显示在线用户列表)")
    if dest_ip == "0":
        #显示在线用户列表
        main.show_online_list()
        try:
            #接收用户输入的序号
            index = int(input("请输入用户的序号:"))
            #根据用户的序号获取列表中的字典信息
            user_dict = feigeglobal.online_user_list[index]
            #根据字典里面key获取对方的ip地址
            dest_ip = user_dict["destip"]
        except Exception as e:
            print("请输入合法的用户序号!")
            print("异常信息为:",e)
            return

        #接收用户发送的内容
    filename = input("请输入要发送的文件名:")
    if dest_ip and filename:
        #准备发送文件消息内容
        #版本号:包编号:用户名:主机名:命令字:消息\0文件序号:文件名:文件大小:文件修改时间:文件类型
        #这里我们只匹配消息后面的内容:消息\0文件序号:文件名:文件大小:文件修改时间:文件类型
        #获取文件大小
        file_size = os.path.getsize(filename)
        file_time = int(os.path.getctime(filename))
        
        file_info = "\0%d:%s:%x:%x:%x"%(0,filename,file_size,file_time,feigeglobal.IPMSG_FILE_REGULAR)
        send_file_info = build_msg(feigeglobal.IPMSG_SENDMSG | feigeglobal.IPMSG_FILEATTACHOPT,file_info)
        #send_file_info的内容:1:1509181309:安琪拉宝宝:kkxiami:2097184:0:feige.py:123:123124:1
        #print(send_file_info)
        #发送消息内容
        send_msg(send_file_info,dest_ip)

        #将文件包编号,文件序号,文件名封装到字典
        send_file_dict = dict()
        send_file_dict["packageid"] = feigeglobal.packgeid
        send_file_dict["fileindex"] = 0
        send_file_dict["filename"] = filename

        print(send_file_dict)
        #封装发送文件信息到字典
        file_dict = dict()
        #文件类型
        file_dict["filetype"] = "sendfile"
        file_dict["data"] = send_file_dict

        #将发送文件的字典信息放入消息队列
        feigeglobal.file_queue.put(file_dict) 
Example #2
0
def send_msg_to_destip():
    #接收用户输入的对方ip地址
    dest_ip = input("请输入对方ip地址(输入0显示在线用户列表):")
    if dest_ip == "0":
        main.show_online_list()
        try:           
            index = int(input("请输入序号:"))
            user_dict = feigeglobal.online_user_list[index]
            dest_ip = user_dict["destip"]
        except Exception as e:
            print("请输入合法的序号!")
            print("打印异常信息!",e)
            return

    #接收用户发送的内容
    content = input("请输入发送的内容:")
    if dest_ip and content:
        send_content = build_msg(feigeglobal.IPMSG_SENDMSG,content)
        # 发送下线消息
        #udp_client_socket.sendto(send_content.encode("gbk"), (dest_ip, feiq_port))
        send_msg(send_content,dest_ip)