如何正确设置 Python 套接字服务器

我最近开始学习 Python,但遇到了一个问题。为什么当我执行 socket.accept() 时我的 while True 循环会停止


我的代码会不断打印“嘿!!”:


import socket



host = "0.0.0.0"  #<- Not the real port and ip, I have working ones...

port = 1234


s = socket.socket()

s.bind((host, port))

s.listen(5)


while True:


    print("HEY!!")


    '''

    connection, adress = s.accept()

    print("Got connection from: '" + str(adress[0]) + ":" + str(adress[1]) + "'")

    '''

我的代码只打印 'HEY!!' 一次:


import socket



host = "0.0.0.0"  #<- Not the real port and ip, I have working ones...

port = 1234


s = socket.socket()

s.bind((host, port))

s.listen(5)


while True:


    print("HEY!!")


    connection, adress = s.accept()

    print("Got connection from: '" + str(adress[0]) + ":" + str(adress[1]) + "'")

我该如何解决它不断打印“HEY!!”的问题 还要让插座工作?


谢谢阅读!


更新:

它现在正在工作,我正在使用线程来实现它。

你有同样的问题吗?-> 谷歌:“Multiple while true loops threading python”

感谢所有帮助我的人!


哈士奇WWW
浏览 122回答 1
1回答

倚天杖

为什么当我执行 socket.accept() 时我的 while True 循环会停止accept是一个阻塞操作。它一直等到客户端连接。它在客户端连接后继续并返回新客户端连接的套接字。我的代码只打印 'HEY!!'&nbsp;一次:HEY!!如果客户端连接到您的服务器,它将打印不止一次,因此阻塞accept返回。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python