使客户端程序等待服务器程序运行

时间:2014-05-11 07:45:29

标签: python sockets client-server

我希望客户端程序在发送消息之前等待服务器程序运行。

目前我有这段代码:

import socket
s=socket.accept()
s.connect(("192.168.1.34".8040))
f=open("tes.png","rb")
l=f.read(1024)
while(1):
         s.send(l)
         l.read(1024)
s.close()

现在,如果我在不运行服务器程序的情况下运行客户端程序,我显然会收到一条错误消息,说明找不到路由。

如何以客户端等待服务器运行然后发送消息的方式更改此程序。

1 个答案:

答案 0 :(得分:0)

基于clientserver的传统定义,服务器具有客户已知的公知地址,但客户端没有公知的地址。服务器

您显示的代码似乎是尝试的客户端和服务器代码的混合,但由于上述原因,您需要进行的更改将在客户端进行。

您可以让客户端执行以下步骤。

  1. 尝试连接服务器。
  2. 如果成功,我们就完成了并继续与服务器通信。如果失败,请等待一段时间(可能是1秒?)然后再回到第1步。
  3. 如果您的问题是“我如何解决客户端抛出的错误并再试一次”,答案就是使用try-except

    此外,如果您显示的代码应该是客户端代码,则正确的第一行是s=socket.socket(),而不是s=socket.accept(),这将引发注释所描述的错误。

    有关在Python中使用客户端 - 服务器代码的简单示例,请参阅另一个问题的my answer

相关问题