Python 我不知道';我不理解为什么完整字符串变量没有显示它应该显示的响应消息

Python 我不知道';我不理解为什么完整字符串变量没有显示它应该显示的响应消息,python,sockets,networking,Python,Sockets,Networking,所以,我开始学习一些关于python套接字模块的知识。我创建了两个python文件,第一个是server.py(PC),如下所示: from socket import * sockobj = socket(AF_INET, SOCK_STREAM) sockobj.bind(('my_IP_Address', 50003)) sockobj.listen(5) while True: connection, address = sockobj.accept() connecti

所以,我开始学习一些关于python套接字模块的知识。我创建了两个python文件,第一个是server.py(PC),如下所示:

from socket import *
sockobj = socket(AF_INET, SOCK_STREAM)
sockobj.bind(('my_IP_Address', 50003))
sockobj.listen(5)
while True:
    connection, address = sockobj.accept()
    connection.send(b'Welcome to the server')
    connection.close()
另一个是client.py(Phone),代码如下所示:

from socket import *
socketobj = socket(AF_INET, SOCK_STREAM)
socketobj.connect(('my_IP_Address', 50003))
full = ''
while True == True:
    mes = socketobj.recv(8)
    full += mes.decode()
print(full)

所以,我的问题是,我应该怎么做才能让connection.close()正常工作?我尝试将打印(完整)放在while循环中,这样就可以重复显示欢迎来到服务器的消息。我假设这是因为full具有“欢迎使用服务器”的值,但一旦我在while之外调用它,它就不会输出任何内容。如果这是一个愚蠢的问题,我很抱歉,但我刚刚学习了sockets模块,需要专业人士的帮助。将流设置为8的原因是,我希望将接收到的消息的位连接成一个完整的流。谢谢

小心,
import*
通常是不好的做法,而
while True==True
是不合逻辑的!我理解关于True==True的担忧,但是,如果我只是用while True创建一个无限循环:“代码吼叫”或打印(完整)就变得不可访问。如果我只是用while True创建一个无限循环:“代码吼叫”或打印(完整)就变得不可访问。这太奇怪了,不应该有什么区别。顺便说一句,您缺少了
。很抱歉,我重新编写了代码,但没有复制/粘贴它,但是结果仍然相同,它说“此代码无法访问”,如果有帮助,我可以给您发送一张图片。另外,当我刚刚放入导入套接字并运行服务器脚本时,终端会打开并立即关闭,但当我从套接字导入时,它会以某种方式工作。无论您使用循环条件,只要它是无限循环,
打印(完整)
,就永远不会执行。这就是有限循环的意思。您的客户端需要从套接字读取数据,直到
socketobj.recv(8)
返回一个值,指示不再有剩余数据。然后,您可以关闭套接字、打印消息并退出循环。