PDA

Просмотр полной версии : Icq клиент на C#


masbear
04.08.2008, 22:41
Появилась надобность написать icq клиент на C#, порыскался в нете, нашел только icq#, но он не работает, да и документации нет. Написал автору, молчит. Есть ещё C исходники Miranda, но я посмотрел - такая жуть (сам я избалован элегантным C#). Так что вот. Но надо бы ещё найти информацию по icq протоколу и вообще как с этим всем работать в C#.

FenTaylor
04.08.2008, 22:56
Информация о протоколе:

http://iserverd.khstu.ru/oscar/

Компонент для работы с icq на C# (кажется даж апдейтенный) был тут:

http://www.gotdotnet.ru/Forums/Common/318944.aspx

Ну плюс еще открытые сорцы &RQ:

http://www.rejetto.com/&RQ/

geezer.code
05.08.2008, 11:17
сам я избалован элегантным C#

вуаахаха )))) мне самому нравится с# пишу на нем. но после знакомства с руби и питоном. элегантным его назвать язык не повернется )))

по сабжу...
http://shaim.net/ вот месяц назад всьо работало.

Jes
05.08.2008, 13:42
2 masbear
http://ru.wikipedia.org/wiki/OSCAR_(протокол)
(чет прямую ссылку блочит =/ )

masbear
05.08.2008, 17:21
Спасибо, ознакомился с этим OscarLib, но там пример WinForms не идет. Чтож приннимаюсь за подробное изучение этого протокола и работу с протоколами в C#. Результаты выложу где-то через неделю.
P.S. Имхо у руби и питона синтаксис какой-то непривычный. {} как-то роднее...

masbear
08.08.2008, 11:10
Скачал я этот shaim. Он затребовал 3 framework. Установил. Как работает программа, так и не понял. Но там меня заинтересовали 3 dll в папке protocol: JabberLib.dll, MsnLib.dll, OscarLib.dll. Очевидно, что именно с их помощью осуществляется передача мессагов. Но примеров использования не было. Я ввел в гугл кодсёрч lang:C# using jabber.client; и так для всех namespace'ов но он ничего не нашел. Может кто-нибудь привести пример работы с этими библиотеками?

geezer.code
08.08.2008, 11:14
Скачал я этот shaim. Он затребовал 3 framework. Установил. Как работает программа, так и не понял. Но там меня заинтересовали 3 dll в папке protocol: JabberLib.dll, MsnLib.dll, OscarLib.dll. Очевидно, что именно с их помощью осуществляется передача мессагов. Но примеров использования не было. Я ввел в гугл кодсёрч lang:C# using jabber.client; и так для всех namespace'ов но он ничего не нашел. Может кто-нибудь привести пример работы с этими библиотеками?
ты не сам шаим а его сорцы скачай. там же вроде есть они.

masbear
08.08.2008, 12:54
Ссалка на сорсы битая =(
P.S. Reflector рулит =)

geezer.code
08.08.2008, 12:59
Ссалка на сорсы битая =(
P.S. Reflector рулит =)
вот не надо... и на сорцы есть ссылка http://shaim.net/trac/trac.fcgi/shaim/attachment/wiki/0.4%20Release/shaim-0.4.src.zip?format=raw ..
рабочая... и их сабвершна можно сорс скачать.

masbear
08.08.2008, 13:19
http://shaim.net/trac/oscarlib =>
To get the bleeding edge source code, download it from our Subversion repository at svn://shaim.net:41120/oscarlib/trunk - невозможно отобразить страницу
За рабочую ссылку +1

geezer.code
08.08.2008, 13:32
http://shaim.net/trac/oscarlib =>
To get the bleeding edge source code, download it from our Subversion repository at svn://shaim.net:41120/oscarlib/trunk - невозможно отобразить страницу
За рабочую ссылку +1
^)))) мдяя.. качай из сабвершна .. в чем проблема ??
установи клиент... TortoiseSVN например. под винды.

masbear
08.08.2008, 14:03
Короче не работает этот шайм. Зашел им на свою аську, да котнакты мои все отобразились. Отпарвил себе навторой контакт, вышел, зашел через кфип - не пришло. Вобщем фигня этот shaim и этот oscarlib И icq#. Нет ничего лучше сделанного своими руками ))
слышал, есть проги, которыми можно отслеживать сообщения icq (сниферы). я думал они и протокол в работе покажут, но нет. нет ли проги, которая может показать, какие данные отправляются на сервер, какие принимаются. ведь icq - закрытый протокол, и открытого описания его послдней 11 версии нет.

nerezus
10.08.2008, 12:54
Вобщем фигня этот shaim и этот oscarlib И icq#. Нет ничего лучше сделанного своими руками )) Покажи свой, сделанный своими руками? )
Этими то пользоваться научился бы )

masbear
10.08.2008, 22:27
Покажи свой, сделанный своими руками? )

Покажу, и у меня будет не хуже.
Если думаешь что я лох какой то, то ошибаешься. Я что, не могу воспользоваться сторонней библиотекой, и при некорректной ее работе решить написать свою? Это означает, что я ламер?

razzzar
10.08.2008, 22:41
masbear, как нету протокола в паблике? с этого года есть :)
http://dev.aol.com/aim/oscar/

Don Anton
10.08.2008, 22:44
интересно....сам тоже над этим подумываю

masbear
12.08.2008, 10:18
Вобщем долго рылся в этом OscarLib, получилось, наконец, отправить сообщение. Вот код, если кому-то интересно:



Session sess = new Session("uin", "pass");
sess.LoginCompleted += new LoginCompletedHandler(sess_LoginCompleted);
sess.LoginFailed += new LoginFailedHandler(sess_LoginFailed);
sess.ContactListFinished += new ContactListFinishedHandler (sess_ContactListFinished);
sess.ClientCapabilities = Capabilities.SIMKopete | Capabilities.UTF8;
sess.Logon("login.icq.com", 5190);
sess.ActivateBuddyList();
}

void sess_ContactListFinished(Session sess, DateTime lastModificationDate)
{
MessageBox.Show("Recieved Contact List");
}

private void button2_Click(object sender, EventArgs e)
{
try
{
sess.Messages.SendMessage("421003132", "hello");
MessageBox.Show("Message was sent");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show("Сообщение отправлено");
}



Теперь надо разобраться, как осуществлять поиск, и, считай клиент готов.

nerezus
14.08.2008, 15:28
Это означает, что я ламер? Как минимум это означает что тебе хочется делать лишнюю работу.
Мог бы просто поправить несколько строк в чужой библиотеке.

А так как ты начал писать свое, не оценив работу других библиотек - то это говьорит уже о профессионализме. Или точнее о его нехватке.

ForNeVeR
19.08.2008, 10:53
нет ли проги, которая может показать, какие данные отправляются на сервер, какие принимаются.Есть клиент IMadering, в нём имеется функция записи всех входящих-исходящих пакетов. Должно помочь.

geezer.code
22.08.2008, 15:06
Вобщем долго рылся в этом OscarLib, получилось, наконец, отправить сообщение. Вот код, если кому-то интересно:
Теперь надо разобраться, как осуществлять поиск, и, считай клиент готов.

а как же своя либа ?? )))) или уже за слова отвечать не модно ?