socket.setdefaulttimeout和用Python写的Windows服务有什么关系

问题描述 投票:0回答:1

我正在熟悉用 Python 创建 Windows 服务,我在这里或其他地方找到的所有示例都调用

socket.setdefaulttimeout(60.0)
(或类似的东西)。但是这些例子都没有解释为什么这样做......我找不到任何关于这是否与 Windows 服务或它们在 Python 中实现的方式有关的信息。

我只是想更好地处理我的代码中发生的事情。如果有人能解释为什么这样做/如果需要的话,我将不胜感激。

作为参考,这是 Python 中服务类的(部分)样板实现

import socket
import win32event
from win32serviceutil import ServiceFramework
# some of the usual imports have been left out for the sake of brevity


class ExampleService(ServiceFramework):
    _svc_name_ = 'example_service'
    _svc_display_name_ = 'Example Service'
    _svc_description_ = 'Lorem ipsum dolor sit amet'

    def __init__(self, *args):
        super().__init__(*args)
        socket.setdefaulttimeout(60.0)  # <- this is the line in question
        self.svc_stop_event = win32event.CreateEvent(None, 0, 0, None)

    def SvcStop(self):
        ...

    def SvcDoRun(self):
        ...
python windows sockets service
1个回答
0
投票

Sockets 与编写服务无关。但是,套接字可以在服务内部使用。显然,您必须研究服务如何使用套接字才能理解为什么要设置默认套接字超时。设置超时不会影响服务本身。

© www.soinside.com 2019 - 2024. All rights reserved.