чтение строки из сокета (python)

Модератор: Модераторы разделов

Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

чтение строки из сокета

Сообщение nadge »

Пишу клиент-серверное приложение на питоне. Нравится в модуле SockerServer в StreamRequestHandler функция self.rfile.readline(). Однако, как это сделать (не вручную) для клиента, я не нашел. Есть ли такая возможность?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: чтение строки из сокета

Сообщение watashiwa_daredeska »

На клиенте, наверное, не SockerServer и StreamRequestHandler? И в том, что вместо них, наверное, есть свой readline()?
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: чтение строки из сокета

Сообщение nadge »

watashiwa_darede...
Да. Вот про это и вопрос: на чем делать клиент?
В классе socket нету readline (или врет документация?). А других вариантов я не нашел (может плохо искал...).


З.Ы. Забыл уточнить: питон верси 2.6.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: чтение строки из сокета

Сообщение watashiwa_daredeska »

nadge писал(а):
15.01.2011 15:19
В классе socket нету readline
socket.fileno() -> os.fdopen() -> .readline()
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: чтение строки из сокета

Сообщение nadge »

socket.fileno() -> os.fdopen() -> .readline()

Следовало бы догадаться... Спасибо, попробую.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: чтение строки из сокета

Сообщение nadge »

Сделал так:
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

В чем проблема?
Спасибо сказали: