Это не так, как вы используете global
.Когда вы определяете метод, в области действия метода вы используете глобальную команду, чтобы сделать ссылки на переменную переменной более высокого уровня.
message = 1
def globalTest():
global message
message += 1
print message
print message
globalTest()
print message
Вы создаете новый файловый объект для соединения каждый раз, когда выперебрать цикл.Вы хотите сделать это до начала цикла, поэтому вы делаете это только один раз.
Вы читаете и пишете в один и тот же объект файла.Это означает, что это просто эхо-сервер.Вы никогда не даете thread1 ссылку на файл thread2.Попытка использовать одну глобальную переменную для файла сокета не будет работать, потому что вы никогда не узнаете, на какой сокет он указывает.(Проблема № 2)
Вы никогда не инициализируете сообщение, поэтому message += temp
выдаст UnboudLocalError
, сообщающее, что на него ссылаются до присвоения значения.(Вероятно, причина проблемы # 1) Кроме того, почему вы добавляете строку в первую очередь, это означает, что каждый раз, когда что-то отправляется, весь разговор отправляется.
Кроме того, не запрашивайте вручнуюи отпустите замок, используя с очистителем.
with lock:
message += temp