友友们,我通过socket建立了树莓派(服务器)和计算机(客户端)之间的通信,想实现一个功能,当计算机接收到树莓派消息时,显示一行标题并输出帧图像,若未接收到,仅输出帧图像,请问如何实现?recv函数好像会一直等待接收计算机的消息,程序会卡在这里。设置settimeout又会退出程序,有没有什么好的方法呢?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已结题
python socket的使用
收起
- 写回答
- 好问题 0 提建议
- 关注问题
- 微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
heart_6662 2023-01-08 07:46关注望采纳!!
你可以创建一个线程来不断地从服务器端接收消息,另一个线程则负责不断地输出帧图像。这样,你就可以同时实现输出帧图像和接收消息的功能,而不会导致程序卡在 recv 函数中。在 Python 中,你可以使用 threading 模块来创建多线程。例如:
import threading def receive_message(sock): while True: message = sock.recv(1024) if message: print("Received message:", message) def display_frame(sock): while True: # 输出帧图像的代码 pass # 创建两个线程 thread1 = threading.Thread(target=receive_message, args=(sock,)) thread2 = threading.Thread(target=display_frame, args=(sock,)) # 启动线程 thread1.start() thread2.start()
上面的代码中,我们创建了两个线程:一个线程用于接收消息,另一个线程用于输出帧图像。然后我们启动这两个线程,这样就可以同时实现接收消息和输出帧图像的功能。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫点击复制链接分享编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览
轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2021-09-22 09:06回答 1 已采纳 socket就是网络通信,跟内网外网没有任何关系你只要网络通就行了,对于代码来说没有任何区别
- 2021-12-29 03:00回答 2 已采纳 import random n=int(input()) list=[] for i in range(n): list.append(random.randint(1,200)) print
- 2021-11-05 09:43回答 3 已采纳 f-string采用 {content:format} 设置字符串格式,其中 content 是替换并填入字符串的内容,可以是变量、表达式或函数等,format 是格式描述符.具体函数可以参考看
- 2024-06-14 19:11基于Python的Socket编程实战涉及创建网络应用程序,利用Python内置的socket库实现客户端和服务器之间的通信。Socket编程是一种低级网络编程技术,用于在网络上进行数据传输,支持多种协议,包括TCP和UDP。 首先,...
- 2016-12-28 22:45回答 2 已采纳 这是网络通信中的一个错误处理而已。需要你服务器端对它进行处理就可以了 http://blog.csdn.net/tw7613781/article/details/7395190
- 2022-06-21 21:13回答 1 已采纳 self.buffer必须是个byte数组,也就是bytearray这个对象而你现在里面存的是个builtin_function_or_method,也就是说你有个名叫buffer的函数你确定不是要调
- 2018-04-02 01:17回答 5 已采纳 你理解的没啥大问题。 这个参数指定是**等待队列**的长度。 也就是如果系统可以并发处理100个请求,同时到达106个请求,100个请求直接被处理,5个等待,第106个直接就拒绝。
- 2024-01-06 14:05Python 网络编程是指使用 Python 语言进行网络通信编程,包括 socket 编程、网络通信协议等方面的内容。下面是对 Python 网络编程的详细介绍: 1. 网络通信的概念 网络通信是指计算机之间通过网络进行数据交换的...
- 2022-06-01 15:26回答 1 已采纳 代码第一次运行到for r in range(k)的时候,r=0, l1和l2两个列表都各只有一个元素,你在后面又使用for g in range(k)去调用l1[g]和l2[g],那当g大于0的时候
- 2021-06-09 12:56回答 2 已采纳 import random a=[] sum=0 max=0 min=1000 for i in range(20): a.append(random.randint(1,999))
- 2021-08-15 01:14回答 1 已采纳 可以呦,看起来没有R语言绘图的更好一些。能达到90%的效果 源码参考: 使用Python,matplotlib绘制Nomogram列线图_程序媛一枚~的博客-CSDN博客 使用Python,
- 2024-06-13 23:33附件是一个简单的 Python socket 编程的例子,包括一个服务器端和一个客户端。 附件代码在实际使用中可能需要进行错误处理和异常管理的增强,以确保程序的健壮性。此外,服务器端代码中的 while True 循环会无限期...
- 2023-04-26 09:52Python3中的Socket编程主要涉及以下几个核心概念: 1. **Socket对象创建**:使用`socket.socket()`函数,传入`AddressFamily`(地址家族)和`Type`(套接字类型)参数。通常,`AF_INET`用于Internet进程间通信,`...
- 2024-12-17 22:46本文档的核心议题是探讨Python在socket编程领域的应用。Python作为一种解释型语言,以其易用性和快速验证概念及开发原型软件的能力而著称。该语言支持整体解释执行和逐行解释执行。感兴趣的读者可以下载本文档以获取...
- 2023-11-28 14:10【大纲】使用Python进行socket编程一、体验Python二、为什么使用Python?三、Pythonsocket模块3.1、基本的Pythonsocket模块3.2、Socket模块3.3、SocketServer模块前提条件创建和销毁socketSocket地址服务器socket...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
- 公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司