您的主要问题是accept()总是只发送两个值,但您希望发送三个值。 应该是的 connection, address = s.accept() 你应该用connection而不是clientsocket 但它会带来另一个问题,因为在发送数据后关闭clientsocket,但您也需要这个连接来接收数据。 所有这些看起来像是你加入了两个密码。这些代码可以单独工作,但不能一起工作-因为两者都需要关闭连接以通知这是数据结束,但现在您无法在发送后关闭它,因为您需要连接来接收其他数据。 你必须用不同的方式通知对方这是数据的结尾。您必须首先发送数据大小(作为大小恒定的对象,因此作为字符串发送将不起作用,因为它对于不同的数字可能具有不同的长度),然后再发送数据。然后另一方首先得到数据大小(作为大小恒定的对象),然后使用thsi值来检测是否得到所有数据。 您可以使用struct将integer大小转换为4个字节(因此对于不同的值,它的大小是恒定的),另一方必须读取4个字节,然后再次使用struct将其转换回integer 我不能运行它,但这是代码。 Server: import socketimport structimport numpy as npimport pandas as pdimport sklearnfrom sklearn.preprocessing import MinMaxS