Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2008 10:24:07

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Мои 2 копейки: позавчера PyS60 1.9.0 проанонсировали и он на базе 2.5. Я к тому, что settimeout там должен быть.
Анонс здесь: http://discussion.forum.nokia.com/forum/showthread.php?t=154215
Если некритична поддержка старых версий S60, то можно попробовать.



Офлайн

#2 Янв. 8, 2009 14:51:58

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Всё праздники кончились всех с прошедшими… Попробовал всё почемут не работает, причин понять не могу, без вас неразберусь:'(

Ed
Мои 2 копейки:
подробней про твой копейки: 3метра интернет трафика, 7.5метра на диске, и хз сколько нужно оперативы для запуска, на н73 ну никак не хочет…



Офлайн

#3 Янв. 8, 2009 15:11:27

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Ура!!! Сделал! код такой:

import socket, select
host1 = '127.0.0.1'
host2 = 'login.icq.com'
port1 = 8766
k, b = 1, 99999
s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s1.bind((host1, port1))
s1.listen(5)
conn, addr = s1.accept()
s2.connect((host2, port1))
print 'klient connect'

def move(i, o):
tmp = ''
while True:
tmp =i.recv(b)
if socket.error: break
o.send(tmp)

while k<20000:
list1 = [conn, s2]
s3, s4, s5 = select.select(list1, [], [])
print 'select'
for i1 in s3:
print 'start'
if i1 == conn:
move(conn, s2)
print k
elif i1 == s2:
move(s2, conn)
print k, k
k +=1
как говорится всем спасибо, все свободны), будем думать, что мне с этим делать дальше)



Офлайн

#4 Янв. 8, 2009 15:55:16

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Жесть как она есть была и будет, вобщем всё работает, скрипт почему то в постоянной работе принимает по ноль байт, а потом (видать надоедает) выключается, вот сейчас сижу в смапере общаюся с людьми, конектился к петле, скрипт выключил а смапер работает и нормально работает, это в смапере такая фича или это у питона приколы?



Офлайн

#5 Янв. 10, 2009 15:38:44

FooBar
От:
Зарегистрирован: 2009-01-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Lam
подключение в осику происходит следующим образом; сначала идет подключение к login.icq.com, там происходит обмен несколькими пакетами, количество и содержание пакетов зависит от метода авторизации (безопасный логин или обычный) в случае удачи сервер выдает пакет содержащий адрес бос сервера и куки (256 байт). к этому бос серверу нужно подключится и отправить эти куки.

смапер у тебя работает после выключения скрипта потому что через твой скрипт произошло только подключение к login.icq.com, после чего смапер подключился к бос серверу адрес которого пришел в пакете вместе с куками, а не к твоему скрипту (да и не смог бы).

чтобы смапер работал через твой скрипт тебе нужно разобрать пакет с куками и в нем заменить адрес бос сервера на 127.0.0.1

что касается размера указываемого в socket.recv(), в осеку протоколе есть заголовок - 6 байт, сначала нужно распаковать его, в нем содержится сколько байт нужно еще прочитать и прочее, ну и далее читаем весь пакет, а чтобы изменить пакет нужно у изменяемого пакета править в заголовке его размер, а так же и всякие tlv



Офлайн

#6 Янв. 10, 2009 23:45:18

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Сервер-клиент посредник

Да спасиб, я разобрался, прост я притормаживаю)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version