[英]Python Client Socket Error
我有一個問題,我嘗試讓客戶端循環,直到它從服務器接收到連接為止。 當我嘗試將套接字作為全局變量時。 然后使用start建立連接,然后連接。 但是當我使用帶有有效數據變量的send時,出現此錯誤:套接字未連接。 僅當我將所有代碼都放在開始位置並且它將發送信息時,此方法才有效。 如果我在客戶端之前啟動服務器,這將編碼工作,但反之則不行。 試圖使其在任何情況下均有效。
#global variable definition
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def start(host, port):
connected = False
while not connected:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
connected = True
print("Connected")
except:
print("connecting again!")
sleep(5)
#i do put a valid json to send!
def send():
try:
s.sendall(json.dumps(data).encode('utf-8'))
您不應該依賴全局變量。 返回連接的套接字並在send
使用它:
def start(host, port):
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
print("Connected")
return s
except IOError:
print("connecting again!")
sleep(5)
#i do put a valid json to send!
def send(s, data):
s.sendall(json.dumps(data).encode('utf-8'))
s = start(HOST, PORT)
send(s, data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.