python udp客户端超时机制

2024-02-08

如果服务器套接字中生成的兰特数小于4,我的客户端套接字将暂停接收数据。我需要设置超时机制以允许客户端套接字检测到“超时”,然后继续发送消息。 在我运行服务器套接字然后运行客户端套接字后,出现以下错误消息:

Traceback (most recent call last):
File "E:\Studying\Python workspace\Client\src\Client.py", line 34, in <module>
data , addr = client.recvfrom(1024)
socket.timeout: timed out

服务器套接字:

import random
from socket import *
serverSocket = socket(AF_INET , SOCK_DGRAM)
serverSocket.bind(('', 15000))

while True:

rand = random.randint(0, 10)
message , address = serverSocket.recvfrom (1024)
message = message.upper()
print("received message: ", message)
print("echo to address: ", address)
print(rand)

if rand < 4:
    continue
print("Sending message: ", message)
serverSocket.sendto(message, address)

客户端套接字

import socket

UDP_IP = "127.0.0.1"
RPORT = 15000
MESSAGE = "ping"

print("UDP target IP: ", UDP_IP)
print("UDP target port: ", RPORT)
print("message going to send: ", MESSAGE)

client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

i=1

while True:
  try:

    if(i<11): 
        client.sendto(MESSAGE.encode('utf_8'),(UDP_IP, RPORT))
        print("sending message: ", MESSAGE)
        print(i)
        i=i+1
        client.settimeout(2)

        data , addr = client.recvfrom(1024)
        print("received echo: ", data)
        print("received at: " , addr )

  finally:
    print("closing socket")
    client.close()

好吧,settimeout() 会产生异常。尝试这个:

while True:
  try:
    if(i<11): 
        client.sendto(MESSAGE.encode('utf_8'),(UDP_IP, RPORT))
        print("sending message: ", MESSAGE)
        print(i)
        i=i+1
        client.settimeout(2)

        data , addr = client.recvfrom(1024)
        print("received echo: ", data)
        print("received at: " , addr )

  except socket.timeout:
    print("closing socket")
    client.close()

如果您想了解有关 socket.settimeout() 的更多信息,请查看此链接:http://docs.python.org/2/library/socket.html#socket.timeout http://docs.python.org/2/library/socket.html#socket.timeout

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python udp客户端超时机制 的相关文章

  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • 如何在 Windows 64 上安装 NumPy?

    NumPy 安装程序在注册表中找不到 python 路径 无法安装 需要 Python 2 5 版本 但在注册表中未找到该版本 OK 我必须修改注册表吗 我已经修改了 PATH 以指向Python25安装目录 我可以检查一下您使用的是什么安
  • 递归 lambda 表达式可能吗?

    我正在尝试编写一个调用自身的 lambda 表达式 但我似乎找不到任何语法 或者即使它是可能的 本质上我想将以下函数传输到以下 lambda 表达式中 我意识到这是一个愚蠢的应用程序 它只是添加 但我正在探索可以在 python 中使用 l
  • 如何以“正确”的方式处理带有空字节的 Python unicode 字符串?

    Question PyWin32 似乎很乐意将 null 终止的 unicode 字符串作为返回值 我想以 正确 的方式处理这些字符串 假设我得到一个像这样的字符串 u C Users Guest MyFile asy x00 x00sy
  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • Django 的 request.FILES 出现 UnicodeDecodeError

    我在视图调用中有以下代码 def view request body u for filename f in request FILES items body body Filename filename n f read n 在某些情况下
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 更改 R 笔记本中的 mathjax 渲染器(使用“self_contained: false”)

    我正在创建包含方程的 R 笔记本 我在 Windows 10 R 3 5 1 和 rmarkdown 2 1 上使用 RStudio 1 2 5033 当我的 R 笔记本呈现为 HTML 时 MathJax v2 7 2 使用 HTML C
  • 量角器通过名称标签获取元素

    目前我正在使用量角器和 Selenium Web 驱动程序 我有以下问题 我有一个 html 页面 我让量角器单击按钮 然后弹出一个窗口 该窗口包含一个名称为 Description 的文本框
  • coredata 错误,因为sectionNameKeyPath 或在 NSFetchedResultsController 处对数据进行分组

    2011 12 28 10 52 13 633 BadgerNew 663 707 CoreData error NSFetchedResultsController object
  • 如何在 Struts 2 上应用 Spring Security

    我已经阅读了各种教程和论坛 但没有找到结合 Spring security 和 struts2 来研究编码的工作示例 当前的大多数示例都使用 XML 文件中预定义的用户名和密码 但未连接到数据库 例子 Sample 1 https stac
  • PyQt:当内容更改时如何处理小部件的自动调整大小

    当 qt4 小部件的内容发生变化时 我遇到了一些大小问题 我将用两个简单的场景来说明我的问题 场景一 我有一个 QLineEdit 小部件 有时 当我使用 QLineEdit setText 更改其内容时 单行字符串不再适合其当前大小的小部
  • SQL Server 2005 和 SQL Server 2008 之间是否存在冲突?

    我被告知带有 BI 工具的 SQL Server 2005 安装和带有 BI 工具的 SQL Server 2008 不能在同一台计算机上一起工作 显然 一些 事情停止工作 这是我的一位团队成员告诉我的 由于我是 SQL BI 的新手 所以
  • Python:跨文件块边界的正则表达式匹配

    巨大的纯文本数据文件 我使用 python 读取了一个大文件 然后我在该块上应用正则表达式 我想根据一个标识符标签提取相应的值 由于块大小的原因 数据在块边界处丢失 要求 必须以块的形式读取文件 块大小必须小于 或等于 1 GiB Pyth
  • 与 Facebook Graph API 相关的问题

    实际上我正在使用该代码来获取 Facebook 帖子数据 Facebook CURL OPTS CURLOPT SSL VERIFYPEER false Facebook CURL OPTS CURLOPT SSL VERIFYHOST 2
  • 如何从environment.rb或初始化程序中强制RAILS_ENV=development?

    我们的主机不允许我们修改乘客配置文件 即 apache 配置或 vhosts 文件 但我们希望在开发模式下运行 Rails 因此 我们必须在应用程序重新启动时 Rails 加载的文件之一中指定环境 prod dev test 有人知道怎么做
  • 如何使用 Modernizr 测试第 n 个孩子?

    我正在尝试使用 Modernizr 来测试 nth child浏览器支持 但我不知道该怎么做 我找到了这个http jsfiddle net laustdeleuran 3rEVe http jsfiddle net laustdeleur
  • System.Timers.Timer (.NET) 真的很慢吗?

    我的印象是 System Timers Timer 创建自己的线程 并且 Microsoft 建议使用这种类型的计时器来执行更准确计时的任务 与在 UI 线程中运行的 Windows Forms Timer 相反 下面的代码 我认为 应该可
  • Service Worker 和网页之间的通信

    我正在开发一个应用程序 其目标是定期 例如每小时 向用户发送通知 我的想法是使用一个服务工作者 该服务工作者可以在选项卡关闭后运行 并继续向用户发送这些通知 网页需要能够与 Service Worker 沟通有关这些通知的具体细节 消息应该
  • 如何在Ubuntu下使用SVN 1.8和Eclipse?

    我们刚刚升级到SVN 1 8 不幸的是没有人想到我们 Linux 人 有没有办法将 Eclipse 连接到 SVN 1 8 的回购协议多米尼克 斯塔德勒 https launchpad net dominik stadler 多次提到升级到
  • 根据 Zingchart 中的列值进行多重绘图并更改线条颜色

    背景资料 我想将 gnuplot 图移植到 Zingchart 我添加了 gnuplot 源代码以更好地解释我的目标 reset set autoscale set term canvas rounded solid butt size 1
  • 如何在 Cloud Run 上部署 Typescript 项目

    Cloud Run error The user provided container failed to start and listen on the port defined provided by the PORT 8080 env
  • 选择随机记录并在一个查询中更新相同记录?

    我正在开发一个小型横幅旋转脚本 该脚本从数据库加载随机横幅 我正在跟踪数据库中的印象 想知道是否可以选择随机记录并在单个查询中更新其印象值 或者我是否需要选择随机记录 然后根据记录 pk 进行更新 使用MySQL 这无法在单个查询中完成 最
  • 限制 Django 表中的行数

    我的模型文件中有一个表 我想将其设计为表中的行数限制为十行 当超过限制时 最旧的行将被删除 对于某些上下文 这是前端的显示 向用户显示他们最近访问过的十个链接 我是 Django 新手 所以如果有人对如何做到这一点有建议 我将不胜感激 你可
  • elf 格式的可执行文件和可重定位文件有什么区别?

    elf 格式的可执行文件和 elf 格式的可重定位文件有什么区别 如您所知 每个编译后的可执行文件都是具有相对地址和绝对地址的二进制文件 因此可重定位格式是一种格式 其中函数和其他符号仍然具有名称定义 换句话说 函数和变量不绑定到任何特定地
  • 如何在 IntelliJ IDEA 13(或 WebStorm)上远程运行 mocha 测试?

    IntelliJ IDEA 13 通过 Node js 插件对 Mocha 测试提供了非常出色的支持 https www jetbrains com idea webhelp running mocha unit tests html ht
  • python udp客户端超时机制

    如果服务器套接字中生成的兰特数小于4 我的客户端套接字将暂停接收数据 我需要设置超时机制以允许客户端套接字检测到 超时 然后继续发送消息 在我运行服务器套接字然后运行客户端套接字后 出现以下错误消息 Traceback most recen