繁体   English   中英

Python-来自服务器的UDP套接字检查响应

[英]Python - UDP socket Check response from server

我有一个基本的客户端/服务器程序。 服务器将时间戳发送给客户端。 我想检查客户端是否响应了消息,如果没有,请重新发送请求。 我将如何处理?

while 1:
    wait = "True"

    line = raw_input("Press enter to get the time or \"STOP\" to exit: ")
    if line == "STOP":
            break
    print "Waiting for response......"
    s.sendto(line, (servAddr,servPort))
    line, server = s.recvfrom(256)
    while wait:         // Obviously wrong, but pseudo 
            if line == "":
                    print 'Send another'
                    wait = False

    print (line)

似乎您需要用socket.settimeout()select模块。

使用.settimeout()可以告诉套接字引发socket.timeout异常,如果该套接字在指定时间范围内未收到任何数据。 如果您的服务器只需要处理一个客户端(每个线程/进程/ greenlet /无论哪个也可以),则这已经足够了。 如果您希望服务器在等待客户端响应时做一些事情,并且您没有使用任何线程/异步框架,则可能需要编写更多代码,因为您想将超时设置为零并跟踪时间手动重新发送消息。

select模块为您提供了可在一个公共超时时间内监听多个套接字的工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM