我希望客户端程序在发送消息之前等待服务器程序运行。
目前我有这段代码:
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()
现在,如果我在不运行服务器程序的情况下运行客户端程序,我显然会收到一条错误消息,说明找不到路由。
如何以客户端等待服务器运行然后发送消息的方式更改此程序。
答案 0 :(得分:0)
基于client
和server
的传统定义,服务器具有客户已知的公知地址,但客户端没有公知的地址。服务器
您显示的代码似乎是尝试的客户端和服务器代码的混合,但由于上述原因,您需要进行的更改将在客户端进行。
您可以让客户端执行以下步骤。
如果您的问题是“我如何解决客户端抛出的错误并再试一次”,答案就是使用try-except
。
此外,如果您显示的代码应该是客户端代码,则正确的第一行是s=socket.socket()
,而不是s=socket.accept()
,这将引发注释所描述的错误。
有关在Python中使用客户端 - 服务器代码的简单示例,请参阅另一个问题的my answer。