Pythonのソケット通信のタイムオーバー処理
Pythonのクライアント側の通信で、prosessingのサーバー側からデータが来たらそのまま次の処理に、20秒ほど特にクリックによって送られるデータが来なかった場合同じように次の処理に移りたいのですが、方法がわからず困っています。
時間経過によるフラグにしてしまうと後々フラグが立ってしまったり、while文で回すのも考えたのですが、受信したときに抜け出す方法が分かりませんでした。
毎回Pythonのプログラムの貼り方がわからないため、別のスペースユニットを使うため見づらいですがよろしくお願いします。
【ソースコード】
import subprocess
import time
import socket
from threading import Thread
host = '127.0.0.1'
port = 50007
WORK = ""
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #オブジェクトの作成
client.connect((host, port)) #サーバーに接続
client.send("test".encode('utf-8')) #適当なデータ送信
def Get_click():
response_d = client.recv(4096)
print (response_d)
response = response_d.decode('utf-8')
#届くデータはt01/t02/t03
return response
time.sleep(2)
print("start")
data = Get_click()
if data.find("t01") >= 0 :
print(1)
elif data.find("t02") >= 0 :
print(2)
elif data.find("t03") >= 0 :
print(3)
else : #返答がなければここに割り振られたい
print("error")