Python 保持客户端连接处于活动状态

Python 保持客户端连接处于活动状态,python,python-2.7,sockets,tcp,Python,Python 2.7,Sockets,Tcp,我是python套接字编程的初学者。我的问题是,我有一个TCP服务器处于侦听模式,此时客户端将向服务器发送数据。但当我的TCP服务器不可用时,我希望客户端每次都去检查连接(类似于使用while循环尝试异常方法) 我尝试过一些技巧,但没有成功,当我的TCP服务器不可用时,它会提供类似o/p的连接被拒绝。下面是我的代码,请帮我做同样的事情 # client.py import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM

我是python套接字编程的初学者。我的问题是,我有一个TCP服务器处于侦听模式,此时客户端将向服务器发送数据。但当我的TCP服务器不可用时,我希望客户端每次都去检查连接(类似于使用while循环尝试异常方法)

我尝试过一些技巧,但没有成功,当我的TCP服务器不可用时,它会提供类似o/p的连接被拒绝。下面是我的代码,请帮我做同样的事情

# client.py  
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
host = socket.gethostname()                           

port = 2195

s.connect((host, 2195))


while 1: 

    try:
        print "Try loop"
        s.sendall("Welcome to Python\r\n")
        print "Try loop2"
        time.sleep(5)


    except:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        s.connect((host, port))
s.close()

我已经尝试了很多解决方案,但下面的代码对我很有用

client.py
我已经尝试了很多解决方案,但下面的代码对我很有用

client.py
您描述了一个完美的sensibe解决方案:捕获异常,然后休眠一段时间,然后重试连接尝试。但你没有尝试实现这一点,也没有描述你实际的详细问题。我的问题是客户端代码应该每次都检查连接,在我的代码中,它会检查5秒作为我的时间。睡眠(5)。@MeetAdhia:你没有尝试连接。相反,您希望连接成功,然后尝试发送。只不过,如果TCP服务器不可用,连接将已经失败,这就是您得到的(连接被拒绝)和无法捕获的结果。您描述了一个完美的sensibe解决方案:捕获异常,然后您应该休眠一段时间,然后重试连接尝试。但你没有尝试实现这一点,也没有描述你实际的详细问题。我的问题是客户端代码应该每次都检查连接,在我的代码中,它会检查5秒作为我的时间。睡眠(5)。@MeetAdhia:你没有尝试连接。相反,您希望连接成功,然后尝试发送。仅当TCP服务器不可用时,连接就会失败,这就是您得到的(连接被拒绝)和无法捕获的结果。
import socket

import time

while True:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
    host = socket.gethostname()                           

    port = 2195

    try:
        s.connect((host , port))
        s.sendall("Welcome to Python\r\n")

    except:
        print "Error"

    time.sleep(5)
    s.close()