为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哈士奇WWW 2021-08-17 18:52:33
我最近开始学习 Python,但遇到了一个问题。为什么当我执行 socket.accept() 时我的 while True 循环会停止我的代码会不断打印“嘿!!”:import sockethost = "0.0.0.0"  #<- Not the real port and ip, I have working ones...port = 1234s = 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 sockethost = "0.0.0.0"  #<- Not the real port and ip, I have working ones...port = 1234s = 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”感谢所有帮助我的人!
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

为什么当我执行 socket.accept() 时我的 while True 循环会停止

accept是一个阻塞操作。它一直等到客户端连接。它在客户端连接后继续并返回新客户端连接的套接字。

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

HEY!!如果客户端连接到您的服务器,它将打印不止一次,因此阻塞accept返回。


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信