说明

  • 在一个电脑中编写1个程序,有2个功能

  • 1.获取键盘数据,并将其发送给对方

  • 2.接收数据并显示

  • 并且功能数据进行选择以上的2个功能调用

要求

  1. 实现上述程序

参考代码

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开发者交流平台

应用:udp聊天器的更多相关文章

  1. Python--网络编程学习笔记系列01 附实战:udp聊天器

    Python--网络编程学习系列笔记01 网络编程基本目标: 不同的电脑上的软件能够实现数据传输 网络编程基础知识: IP地址: 用来在网络中标记一台电脑  网络号+主机号(按网络号和主机号占位分类A ...

  2. 多任务版udp聊天器

    import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方"&quo ...

  3. 多任务udp聊天器完整版

    import socket import threading def send_msg(udp_socket,dest_ip,dest_port): while True: send_data = i ...

  4. udp聊天器

    import socket def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" # 1. 从键盘 ...

  5. python网络聊天器多线程版

    在之前的一篇文章(python网络编程-udp)中实现了一个简单的udp聊天器,只能在单线程下进行收发数据,在学习完多线程之后,实现一个能同时收发数据的udp聊天器. 说明: 编写一个有2个线程的程序 ...

  6. python使用udp实现聊天器

    聊天器简易版 使用udp实现一个简单的聊天器程序,要求如下: 在一个电脑中编写1个程序,有2个功能 1.获取键盘数据,并将其发送给对方 2.接收数据并显示 并且功能数据进行选择以上的2个功能调用 例子 ...

  7. 一个紧张刺激的聊天器,要不要进来看看(Python UDP网络模型)

    先来哔哔两句:(https://jq.qq.com/?_wv=1027&k=QgGWqAVF) 互联网的本质是什么?其实就是信息的交换.那么如何将自己的信息发送到其他人的电脑上呢?那就需要借助 ...

  8. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  9. 026.2 网络编程 UDP聊天

    实现,通过socket对象 ##############################################################需求建立UDP发送端:###思路:1.建立可以实 ...

随机推荐

  1. 关于Promise详解

    异步回调 回调地狱 在需要多个操作的时候,会导致多个回调函数嵌套,导致代码不够直观,就是常说的回调地狱 并行结果 如果几个异步操作之间并没有前后顺序之分,但需要等多个异步操作都完成后才能执行后续的任务 ...

  2. BZOJ3530: [Sdoi2014]数数(Trie图,数位Dp)

    Description 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3 ...

  3. 配置spotlight连接linux服务器

    本文转自(https://blog.csdn.net/qq_31391261/article/details/79429098) 一.配置spotlight连接linux服务器 1.以管理员身份运行软 ...

  4. Android 手机插入电脑后提示“”ADB Interface"安装失败的问题

    安装ADB Interface 1. Android Studio开发时,如果在真机上测试并不是那么的顺利.直接将手机插入电脑,并不能识别.往往提示ADB Interface驱动未安装.如下图所示. ...

  5. 业余学习react 学习记录

    http://www.ruanyifeng.com/blog/2015/03/react (阮一峰 react 学习) 1.搭建环境:npm 使用 React npm install -g cnpm ...

  6. 请使劲回答一个关于UNIX/Linux自己主动扩展stack的问题

    有本事就出来,没本事就当鳖! 假设让我回答关于进程栈,线程栈的问题,仅仅要问题不笼统,仅仅要问题明白.我会一五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是非常明白,因此,游戏到此结束 ...

  7. 读《互联网创业password》之随想

    活动地址:http://blog.csdn.net/blogdevteam/article/details/38657235. 现如今.互联网已经深深的影响了中国人的日常生活习惯,曾经那种通过网络进行 ...

  8. Cts框架解析(1)-windows下cts配置

    环境搭建 下载 cts工具的下载地址:http://source.android.com/compatibility/downloads.html windows选择Android4.4 R3 Com ...

  9. php图像处理(thinkphp框架有相对强大的图像处理功能)

    php图像处理(thinkphp框架有相对强大的图像处理功能) 一.总结 1.php处理图像:php处理图像需要安装外库(gd库) 2.gd库函数可以非常完美的操作图像:安装好库之后,这个库里面的函数 ...

  10. dot-files/directories 点开头的文件或文件夹(windows/linux)

    What's so special about directories whose names begin with a dot? 不管是 windows 系统,还是类 linux 系统,以点开头的文 ...