Модератор: BV
Function ToMsgFromICQStr(ByVal strInput As String) As String
On Error Resume Next
Dim i As Integer, strOut As String, intChar(1) As Integer
For i = 1 To Len(strInput)
intChar(0) = Asc(Mid(strInput, i, 1))
If (intChar(0) = 0) Or (intChar(0) = 4) Then
intChar(1) = Asc(Mid(strInput, i + 1, 1))
If (intChar(1) <> 0 And intChar(1) <> 4) Then
If (intChar(0) = 4) Then
strOut = strOut & Chr(176 + intChar(1)): i = i + 1
Else
strOut = strOut & Mid(strInput, i + 1, 1): i = i + 1
End If
End If
Else
strOut = strOut & Chr(intChar(0))
End If
Next i
ToMsgFromICQStr = strOut
End Function
If GetSnacFid(fData) = 4 And GetSnacSID(fData) = 7 Then
fData = Mid$(fData, 21, Len(fData) - 20)
t_len = GetByte(fData, 1)
r_uin = Mid$(fData, 2, t_len)
For i = 1 To Len(fData)
If (str2hex(Mid$(fData, i, 4)) = "01060101") Then '//ищем опкод, который сообщает о начале мессаги
t_len = 0
If (GetByte(fData, CInt(i + 4)) = 1) Then
t_len = GetByte(fData, (i + 4)) * 255 + 1 '//не уверен, что правильно, но мессаги длинее чем 255 символов принимает хорошо =)
End If
t_len = t_len + GetByte(fData, CInt(i + 5)) '//выдираем второе значение длины мессаги
r_msg = ToMsgFromICQStr(Mid$(fData, i + 6, t_len))
r_msg = Replace(r_msg, Chr(2), "") '//icq6 присылает зачем-то 2 символ.. - нам он не нужен. убираем
RaiseEvent MsgRecv(r_uin, r_msg)
Exit Sub
End If
Next i
End If
MIT писал(а):8) Мне не влом было бы и самому все реализовать (только вот все времени нет), но за проделанную работу - спасибо
Скачал.
Мамонт писал(а):да, теперь основательно всё поменяли
Мамонт писал(а):да, у мнея кип заработал, а у некоторых нет. этот пример неработает, хотя тут нет идентификации клиента. но в теории можно АОЛ убедиьт что мы пользуемся icq6.5
Мамонт писал(а):Случайно по телеку увидел новости, АОЛ вроде хочет судиться с теми кто делает клиенты альтернативные! Так что...
Ну как тебе сказать, если бы кто знал, наверно помогли бы уже. Если никто не ответил - чем не повод взять и поучить протокол самому? Ведь, если ты собрался что-то делать в этой области, без знания протокола все равно далеко не уедешь. А так допишешь клиент, все тебе благодарны и будутDakar писал(а):Мне кто нибуть поможет или нет
Dakar писал(а):Парни не подскажете где описание рабочего протокола оторвать можно? чот всё перекопал ни один не фурычет ((
Мамонт писал(а):Вобщем разобрался с:
Подключение
Запрос офф месаг
Отправка сообщений
Получение сообщений
Загрузка контакт листа
Завис в получении информации над юзером потому как там события приходят в снаке отвечающем за офф месаги! Вобщем если есть люди которые разобрались или хотят помучить аську то отписывайтесь.
dormouse писал(а):извините за оффтоп, но я фигею, дорогая редакция..
зачем клепать очередную аську, которая вот-вот сдохнет, каждую неделю меняет протокол и люто ненавидит сторонние клиенты, если есть перспективный, открытый, расширяемый, поддерживающий подключение любых транспортов (аська из них самая популярная) протокол JABBER?
Star Cat писал(а):Да, да! Еще бы найти исходник клиента Jabber.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2