Мне кажется, проблема в том, что когда вы добавляете клиентский сокет добавления в (вход), вы также добавляете его в (L). Это происходит потому, что input и L оба указывают на один и тот же объект списка. Затем, когда вновь подключенный клиентский сокет отправляет вам некоторые данные, вы пытаетесь вызвать accept () на клиентском сокете, но, конечно, клиентский сокет не является слушающим сокетом, поэтому вы получаете сообщение об ошибке. *
В качестве примера того, почему input.append (клиент) добавляет клиента в L, вот фрагмент из моего интерпретатора Python:
Jeremys-Mac-mini:python lcsuser1$ python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> L = [1,2,3]
>>> print L
[1, 2, 3]
>>> input = L
>>> print input
[1, 2, 3]
>>> input.append(4)
>>> print input
[1, 2, 3, 4]
>>> print L
[1, 2, 3, 4] <-- d'oh!
Для исправления замените строку
input = L
с
input = list(L)
Таким образом, ввод указывает на копию L, а не на сам L.