Форум сайта python.su
klient connect
select
start
1 1
error socket.error (32, 'Broken pipe')
select
start
Офлайн
И тоже странно почему сначало передача с сервера идет а не с клиента…
Офлайн
Хы щас поставил конект к s2 после того как присваиваю значение переменной conn результат тот же только уже нету socket.errog, возможно ошибка в не правильной постановке работы двух соков одновременно, а не в самой передаче данных?
Офлайн
LamПрости, но он не читаем. Выполни в интерпретаторе `import this` и почитай то, что он тере напешет… Только там тоже “букавы” есть… :-)
P.S. к оформлению кода просьба не придираться, просто на теле оно так луче выглядит легче понимать…
LamА не всё ли равно? Возможно просто протокол так устроен.
И тоже странно почему сначало передача с сервера идет а не с клиента…
Офлайн
Да запарили я действительно неграмотный не будь т9 ваще бы фих че поняли)
Офлайн
ZZZна сколько тесно? Дело в том что recv(b) она принимает строку данных длиной не более b(это я всё книжке своей верю) и вобщем чтоб тогда организовать правильную передачу, прием выглядит примерно так(код взят с какой то сылки найденой в гугле):
Мой вариант move тесно завязан с settimout и поэтому тебе не очень подходит. Попробуй вариант Shiza, но замени 1024 на 1.
while 1:
i = s1.recv(1)
if not i: break
i2 +=i
Офлайн
LamОшибка в последней букве.
уже нету socket.errog
LamОфигительно тесно. :-)
на сколько тесно?
LamИ кому было бы хуже? :-)
Да запарили я действительно неграмотный не будь т9 ваще бы фих че поняли)
Офлайн
О! Я знаю! Попробуй так:
...
while k<20:
list1 = [conn, s2]
s3, s4, s5 = select.select(list1, [], [])
if not s3:
time.sleep(0.1)
continue
print 'select'
...
Отредактировано (Дек. 26, 2008 00:59:36)
Офлайн
ZZZ
насчет размера пакета - так в доке написано:
“For best match with hardware and network realities, the value of bufsize should be a relatively small power of 2, for example, 4096. ”
“Now if you think about that a bit, you'll come to realize a fundamental truth of sockets: messages must either be fixed length (yuck), or be delimited (shrug), or indicate how long they are (much better), or end by shutting down the connection. The choice is entirely yours, (but some ways are righter than others).”
Отредактировано (Дек. 26, 2008 02:56:45)
Офлайн
Может быть стоит посмотреть в сторону описания протокола icq? Может там что то проясниться?
P.S. 4 провела выставлять, набирая текст на смартфоне, не удобно, уж поверьте. И читать код с 4 пробелами тоже очень трудно :)
Офлайн