Я знаю, что есть другие сообщения, похожие на мои, но я не получил ничего полезного из этих сообщений, поэтому здесь я иду.Локальное переменное сокет, указанное перед назначением
У меня есть этот код, который я использую:
def startElection():
index = vesselList.index(getmyip())
if index >= (len(vesselList)-1):
neighbour = vesselList[0]
else:
neighbour = vesselList[index+1]
try:
socket = openconn(neighbour, destport, localip=None, localport=None, timeout = 5)
socket.send(iD)
socket.close()
except socket.error, exc:
print "Caught exception socket.error : %s" % exc
Я получаю ошибку:
Я попытался изменить имя сокета. Я попытался написать socket = None перед методом try. Я не совсем уверен, почему это происходит.
******** EDIT 1 ********
У меня есть этот код, который почти идентичен тому, что я показал вам, ребята, первый. Этот код ниже меня отлично работает, никаких ошибок. Когда я раскомментирую вызов функции, сделанный для startElection(), код ниже меня работает отлично.
#Start the for loop to send the new word to all the vessels in our vesselList.
destport = 63166
for destHost in vesselList:
if destHost != getmyip(): #Obviously we wont be needing to send it to the vessel it was made in.
try:
soocket = openconn(destHost, destport, localip=None, localport=None, timeout = 5)
soocket.send(userMSG)
soocket.close()
except soocket.error, exc:
print "Caught exception socket.error : %s" % exc
Я получаю ту же ошибку при ее изменении, например, test1. Я упомянул в своем вопросе, что я попытался изменить имя сокета. Но спасибо в любом случае –
вы уверены, что изменили все экземпляры сокета? Назначение, отправка и закрытие - но не socket.error? –
Да все. что означает, что в моем коде были внесены четыре изменения. –