应用:udp聊天器
说明
在一个电脑中编写1个程序,有2个功能
1.获取键盘数据,并将其发送给对方
2.接收数据并显示
并且功能数据进行选择以上的2个功能调用
要求
实现上述程序
参考代码
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聊天器的更多相关文章
- Python--网络编程学习笔记系列01 附实战:udp聊天器
Python--网络编程学习系列笔记01 网络编程基本目标: 不同的电脑上的软件能够实现数据传输 网络编程基础知识: IP地址: 用来在网络中标记一台电脑 网络号+主机号(按网络号和主机号占位分类A ...
- 多任务版udp聊天器
import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方"&quo ...
- 多任务udp聊天器完整版
import socket import threading def send_msg(udp_socket,dest_ip,dest_port): while True: send_data = i ...
- udp聊天器
import socket def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" # 1. 从键盘 ...
- python网络聊天器多线程版
在之前的一篇文章(python网络编程-udp)中实现了一个简单的udp聊天器,只能在单线程下进行收发数据,在学习完多线程之后,实现一个能同时收发数据的udp聊天器. 说明: 编写一个有2个线程的程序 ...
- python使用udp实现聊天器
聊天器简易版 使用udp实现一个简单的聊天器程序,要求如下: 在一个电脑中编写1个程序,有2个功能 1.获取键盘数据,并将其发送给对方 2.接收数据并显示 并且功能数据进行选择以上的2个功能调用 例子 ...
- 一个紧张刺激的聊天器,要不要进来看看(Python UDP网络模型)
先来哔哔两句:(https://jq.qq.com/?_wv=1027&k=QgGWqAVF) 互联网的本质是什么?其实就是信息的交换.那么如何将自己的信息发送到其他人的电脑上呢?那就需要借助 ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- 026.2 网络编程 UDP聊天
实现,通过socket对象 ##############################################################需求建立UDP发送端:###思路:1.建立可以实 ...
随机推荐
- 去掉“此电脑”中的“WPS云文档”图标
平台:Win10 问题:安装了WPS2019专业版后,此电脑窗口出现了一个WPS云文档图标,无法删除,云文档设置中也无法取消. 解决:打开注册表,定位到HKEY_CURRENT_USER\Softwa ...
- canvas和svg区别
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- Appium_pytest fixture的使用
一.定义fixture方法 # -*- coding:utf-8 -*-import pytestfrom baseutil.DriverUtil import DriverConfig @pytes ...
- 06 Jenkins自动化构建
• 在之前的freestyle任务基础上,实现构建功能• 检查maven环境• 构建命令:mvn clean compile• 归档构建产物• 演练参数的使用• 通过配置Trigger进行自动构建• ...
- select下拉列表选中后,跳转新链接
1.在当前页面打开新链接 <select onchange="location.href=this.options[this.selectedIndex].value" na ...
- Flask项目之手机端租房网站的实战开发(五)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...
- [JSOI2009]计数问题
一个n*m的方格,初始时每个格子有一个整数权值.接下来每次有2种操作: 改变一个格子的权值: 求一个子矩阵中某种特定权值出现的个数. 输入输出格式 输入格式: 第一行有两个数N,M. 接下来N行,每行 ...
- js进阶 13-8 jquery如何实现侧边栏
js进阶 13-8 jquery如何实现侧边栏 一.总结 一句话总结:先是把侧边栏设置为left为-100px,隐藏起来,jquery自定义动画animate里面的改变元素的距左边的宽度left,sl ...
- Zookeeper源码用ant进行编译为eclipse工程--转载
原文地址:http://www.it165.net/os/html/201411/10142.html Zookeeper GitHub的下载地址是:https://github.com/apache ...
- Testfan软件测试社区
1. http://ask.testfan.cn/article/902 Appium 服务端安装-windows2. http://ask.testfan.cn/article/1078 最新 ...