0
我有兩個按鈕。連接和斷開。當第一次按連接時,客戶端成功連接到服務器(localhost:4106),當按下斷開連接時,客戶端斷開連接。 我的問題是,當我再次按下「連接」,客戶端將不會重新連接到服務器,我收到一條錯誤消息:http://i.imgur.com/dkvos.pngPython套接字客戶端無法重新連接
我認爲這是由於套接字連接無法重新使用?有沒有解決方法?謝謝
#!/usr/bin/python
import socket
import Tkinter
import tkMessageBox
top = Tkinter.Tk()
s = socket.socket()
host = '127.0.0.1'
port = 4106
def connect():
s.connect((host, port))
def disconnect():
s.close()
ConnectBtn = Tkinter.Button(top, text ="Connect", command = connect)
DisconnectBtn = Tkinter.Button(top, text ="Disconnect", command = disconnect)
ConnectBtn.pack()
DisconnectBtn.pack()
top.mainloop()
呼叫socket.socket(),並指定s到一個新的套接字。在關閉它之前,檢查disconnect()以確保它是一個有效的開放套接字。 – engineerC
插座不能重複使用;在connect()函數中使用's = socket.socket()',並將代碼頂部的's'聲明替換爲's = 0'。你也可以使用你的'disconnect()'函數關閉套接字,只有當它是一個有效的套接字時,通過檢查它的值是否爲'0',並且一旦它成功地斷開連接,它就會將它的值設置爲'0'。我認爲這是有道理的。 – Archimaredes