Пишу клиент-серверное приложение на питоне. Нравится в модуле SockerServer в StreamRequestHandler функция self.rfile.readline(). Однако, как это сделать (не вручную) для клиента, я не нашел. Есть ли такая возможность?
чтение строки из сокета (python)
Модератор: Модераторы разделов
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: чтение строки из сокета
На клиенте, наверное, не SockerServer и StreamRequestHandler? И в том, что вместо них, наверное, есть свой readline()?
Мои розовые очки
-
- Сообщения: 1519
- ОС: ArchLinux, Ubuntu 10.10
Re: чтение строки из сокета
watashiwa_darede...
Да. Вот про это и вопрос: на чем делать клиент?
В классе socket нету readline (или врет документация?). А других вариантов я не нашел (может плохо искал...).
З.Ы. Забыл уточнить: питон верси 2.6.
Да. Вот про это и вопрос: на чем делать клиент?
В классе socket нету readline (или врет документация?). А других вариантов я не нашел (может плохо искал...).
З.Ы. Забыл уточнить: питон верси 2.6.
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
-
- Сообщения: 1519
- ОС: ArchLinux, Ubuntu 10.10
Re: чтение строки из сокета
socket.fileno() -> os.fdopen() -> .readline()
Следовало бы догадаться... Спасибо, попробую.
-
- Сообщения: 1519
- ОС: ArchLinux, Ubuntu 10.10
Re: чтение строки из сокета
Сделал так:
Запись и чтение работают нормально, но но при последющем закрытии readsock вылетает исключение:
В чем проблема?
sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
writesock = os.fdopen( sock.fileno(), 'w+' )
readsock = os.fdopen( sock.fileno(), 'r' )
sock.connect( ( host, port ) )
Запись и чтение работают нормально, но но при последющем закрытии readsock вылетает исключение:
IOError: [Errno 9] Bad file descriptor
В чем проблема?