
Модератор: 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.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9