我使用Python 2.7寫了這個代碼:蟒蛇「類型錯誤:參數必須是字符串或只讀字符緩衝區,而不是元組」
class LoadBalancerHandler:
def __init__(self, file_name):
self.server_socket = socket.socket(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
file = open(file_name)
setup_apps(file.read())
def listen(self, host='localhost', port=80):
self.server_socket.bind((host,port))
self.server_socket.listen(5)
while True:
(client_socket, address) = self.server_socket.accept()
threadHandling = ThreadHandling(client_socket, self)
threadHandling.start()
,但我得到這個錯誤:
TypeError: argument must be string or read-only character buffer, not tuple
這錯誤是由行提出:self.server_socket.bind((host,port))
您對socket.socket(...)的選項看起來很可疑。請參閱https://docs.python.org/2/library/socket.html。你可能意味着socket.socket(socket.AF_INET,socket.SOCK_STREAM)??? – Stanton
你用什麼參數來調用'listen'?添加'print(repr(host),repr(port))'看看你得到了什麼。 – tdelaney
例如,假設你調用'someobject.listen(('localhost',80))'',就是說你傳遞了一個元組作爲'host',你可能會得到這樣的錯誤。 – tdelaney