LINUX.ORG.RU

Ответ на: комментарий от AIv

На эхосервер посылается тысяча раз вот это(примерно вот это): sock.send('echo') sock.send(os.urandom(10240)) sock.recv(11000)

Тысячу раз приходит ответ, но проблема происходит в конце, когда приложение закрывается:

999
----------------------------------------------------------------------
Ran 1 test in 44.524s

OK
Traceback (most recent call last):
  File "/home/deylix/.eclipse/org.eclipse.platform_3.7.0_185596441/plugins/org.python.pydev.debug_2.5.0.2012030114/pysrc/pydev_runfiles_xml_rpc.py", line 131, in run
    self.server.notifyCommands(commands)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1575, in __request
    verbose=self.__verbose
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1292, in single_request
    self.send_content(h, request_body)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1439, in send_content
    connection.endheaders(request_body)
  File "/usr/lib64/python2.7/httplib.py", line 951, in endheaders
    self._send_output(message_body)
  File "/usr/lib64/python2.7/httplib.py", line 811, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.7/httplib.py", line 787, in send
    self.sock.sendall(data)
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 104] Connection reset by peer

deterok ★★★★★
() автор топика
Ответ на: комментарий от AIv

Чувствую, что проблема в том, что я передаю данные вот такого типа:

�q��{0�֯��
(Интересный факт: когда пускаю в терминале, то ошибки не происходит, но в поле ввода терминала появяляется мусор вот такого плана: 1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c1;2c)
Наверное там встречаются управляющие символы.
Когда отправляю обычные алфавитные символы и цифры -> все ок

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Сокету по идее пофиг че там за управляющие символы, он бинарные данные гонять может. Проблема в том, что одна из сторон не отдает всего того что должна, т.е. Вы неправильно определяете длину сообщения.

AIv ★★★★★
()
Ответ на: комментарий от deterok

проблема происходит в конце, когда приложение закрывается

может ты соединение не закрываешь или закрываешь не правильно?

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Вообще я его не закрываю на стороне клиента, а просто делаю выход из программы, при этом на стороне сервера принимается 0 байт, что свидетельствует о закрытие соединения клиентом.

deterok ★★★★★
() автор топика
Ответ на: комментарий от Bad_ptr

Ко всему прочему слетает кодировка выводимых символов в терминале.
Интуитивный ввод работает, русские символы отображаются нормально, reset терминала спасает

deterok ★★★★★
() автор топика
Ответ на: комментарий от Bad_ptr

Все ок стало, глючило из-за того, что у меня в отладочном выводе были первые 10 символов, а там видать управляющие встречались и это дурно дейсвовало на терминал. Вопрос: можно ли от этого защитится?(Просто интересно)

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Пропускать отадочный вывод через less (если где-нибудь в lessrc не забито -r) или писать в файл.

ABW ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.