| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > Синхронный (без блокировки) сокетсервер на Python? |
| Автор: HRustBB 27.7.2010, 17:26 | ||
Пока только изучаю вопрос. С целью ознакомления с темой пишу север, который собственно ничего особенно не делает, просто принимает данные от клиента. Вот код
Не могу понять что тут не так, в IDLE запинается на строке except socket.error, errcode:. Кстати пример взял с wiki.linuxformat.ru |
| Автор: Void 27.7.2010, 17:52 |
| На listen-сокете нельзя делать recv. На нём можно сделать только accept, который вернёт новый сокет, через который уже можно общаться с клиентом. |
| Автор: HRustBB 27.7.2010, 21:27 |
| забыл уточнить: у меня python 3.1 в книжке Д.Откидач про acept() написано: accept() Принимает соединение и возвращает пару (conn, addr) где conn - новый объект сетевого соединения, подходящий для приема и посылки данных, addr - адрес другого конца сетевого соединения. Объект сетевого соединения, к которому применяется метод accept() должен быть привязан к адресу (метод bind) и ожидать соединения (метод listen). А если я в IDLE пишу accept без предварительно написанного listen, то разумеется имею ошибку: Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> conn, addr = s.accept() File "C:\Python31\lib\socket.py", line 120, in accept fd, addr = self._accept() socket.error: [Errno 10022] Получен недопустимый аргумент Так вот. Может у кого нибудь есть хотябы пример сервера без блокировки. |