Autor Beitrag
ConSid3
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 19.07.11 21:24 
Heyho

mich plagt Folgendes. Ich schreibe gerade einen LoginClient für ICQ, vom Programmablauf ist vieles schon fertig, es fehlen noch ein paar Kleinigkeiten.
Nun zum Problem, ich habe mich bereits dusselig gegooglet, ich finde einfach kein direktes Beispiel für einen Login Vorgang mit ICQ (in C#).
Ich hoffe ihr könnt mir da helfen das Protokoll in C# abzuarbeiten ( iserverd.khstu.ru/oscar/elmd5.html )

Um mein Anliegen noch weiter zu spezifizieren, ich suche einfach den ganz simplen Ablauf, bzw die dafür notwendigen Funktionen (connect -> icqblablabla.com, Empfangen von Daten und dessen Verwendung/Auslesung und das Senden von Daten, wie beispielsweise die uin und das pw beim login, anschließend eine msg oder ähnliches)

Würde mich freuen wenn ich es aufgrund eurer Hilfe bald mal hinbekommen würde.

Danke im Voraus,
ConSid3
ConSid3 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 23.07.11 16:16 
Kann mir da niemand helfen? Kennt wenigstens jemand ein C# Buch über Networking, auf deutsch kann ich keins finden, und über 600 Seiten zu dem Thema in englisch durchzuhacken ist mir zu heftig.
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Sa 23.07.11 17:51 
Hallo,

naja, das ganze Protokoll selber schreiben?
Ich habe da mal eine nette dll Namens "OscarLib" gefunden. Diese ist auch bei dem Client "shaim" dabei.
Die Seite von shaim ist hier: shaim.net

Und hier mal ein Beispielcode:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
static void Main(string[] args)
{
  Session icqSession = new Session("Icq-Nummer""Password");
  icqSession.LoginStatusUpdate += new LoginStatusUpdateHandler(icqSession_LoginStatusUpdate);
              
  bool loginFailed = false;
  icqSession.Logon("login.icq.com"5190);
  icqSession.LoginFailed += (x, y) =>
  {
    Console.WriteLine(string.Format("Login failed. Errorcode: {0}", y));
    loginFailed = true;
  };        
  
  while (!icqSession.LoggedIn && !loginFailed)
    Thread.Sleep(1000);

  if (icqSession.LoggedIn)
  {
    Console.WriteLine("Login successful");
    //tue irgendwas
  }

  if (icqSession.LoggedIn)
    icqSession.Logoff();

  Console.ReadKey();
}

static void icqSession_LoginStatusUpdate(Session sess, string message, double percentdone)
{
  Console.WriteLine(message);    
}

LG,
ConSid3 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 24.07.11 22:24 
Also danke für die Antwort,

um ganz ehrlich zu sein, würde ich es tatsächlich gerne selbst schreiben, denn unter Umständen möchte ich den Client nach der Fertigstellung in den Marketplace laden und bin mir der rechtlichen Dinge was Libs von anderen angeht nicht sicher. Dazu kommt noch, dass ich selbst in der Lage sein möchte den Client nach einem Server Update auf den neusten Stand zu bringen und nicht erst auf eine neue Lib von jemanden zu warten.

Trotz alledem danke für die Antwort, ist der direkte Quellcode der Lib irgendwie ersichtlich?
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mo 25.07.11 06:51 
Den Quellcode der OscarLib findest Du hier:
shaim.net/trac/trac....owser/trunk/src/Core