[Java] MSN reply op VER command :?

Pagina: 1
Acties:

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Ik weet het, er zijn al veel topics over het MSN protocol langsgeweest, maar ik vind mijn probleem er toch niet tussen...

Ik wil dus connecten naar de MSN dispatch server via het bericht:

VER 0 MSNP2\r\n

Dit lukt allemaal, en ik krijg zelfs een antwoord :)

Wel, dit antwoord is nu juist de boosdoener, ik geraak er geen wijs uit.

Antwoord van Dispatch-server

[C@136228 :?

Volgens mij scheelt er iets met mijn input- en outputreaders, maar ik vind toch het probleem niet.
Dit kan ook een normale reply zijn hoor, maar dan daaruit kan ik toch geen gegevens uit afleiden ...

Dit is de code die ik alvast heb:
code:
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
33
34
35
36
37
38
39
40
41
public class Client
{
  public static void main(String[] args)
  {
    String msgSend = "VER 0 MSNP2\r\n";//7 MSNP6 MSNP5 MSNP4 CVR0\r\n";
    char[] msgRcv = new char[32];

    try
    {
    Socket client = new Socket("Messenger.hotmail.com", 1863);
    InputStreamReader input = new InputStreamReader(
                                client.getInputStream());

    OutputStreamWriter output = new OutputStreamWriter(
                                client.getOutputStream());

    System.out.println("sending to " + client.getInetAddress() + ":" +
                  client.getPort() + " ...");

    output.write(msgSend);
    output.flush();

    System.out.println("Bericht verzonden");

    input.read(msgRcv);

    System.out.println("Bericht ontvangen");
    System.out.println("Bericht: \n" + msgRcv);

    client.close();
    }
    catch(UnknownHostException e)
    {
    e.getMessage();
    }
    catch(IOException e)
    {
    e.getMessage();
    }
  }
}

Zijn mijn readers en writers correct? Zoja, wat betekent deze reply dan ?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
beste Gottertjes van me, jullie moeten niet meer verder zoeken, want ik heb het gevonden...

Tenminste, als jullie aan het zoeken waren :+

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
Als je dan ook even verteld WAT je gevonden heb. Helpt ons ook weer :)

  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
en hoe hebt ge het opgelost? Misschien wel interressant :)

[edit] te laat ;)

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-07 21:46

Confusion

Fallen from grace

[knip onzinnige speculatie :)]

Deelt ons mede wat het was! ;)

Wie trösten wir uns, die Mörder aller Mörder?


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
De oplssing was eigenlijk heel simpel |:(

met
code:
1
input.read(msgRcv);

las ik steeds slechts 1 byte in van de reply. Als je goed het opgelet, zag je dat mijn reply juist 8 tekens was (1 byte) dus. Wat die [ er bij deed, snap ik nu ook nog niet.

Met het volgende lusje
code:
1
2
3
4
5
int c;
while ( (c = input.read()) != -1 )
{
    System.out.print((char)c);
}

Lees ik nu steeds in totdat ik aan het einde zit: -1. Het resultaat van uw input.read is steeds een integer-waarde. Door deze naar een 'char' te casten, kom ik de juiste string uit. Namelijk: dezelfde als ik had opgestuurd :Y) . Maar dat schijnt te kloppen.

Nu heb ik nog een ander probleem, maar daar heb ik nog niet zoveel op gezocht.
Hoe krijg ik dit in een String-variabele, ipv op het scherm te tonen?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 26-08 21:49

NDF82

Doomed Space Marine

maak van
code:
1
InputStreamReader input = new InputStreamReader(client.getInputStream());

eens dit:
code:
1
BufferedReader input = new BufferedReader(client.getInputStream());

je kunt nu een hele regel uit de InputStream lezen met:
code:
1
String s = input.readLine();

succes

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Op donderdag 25 juli 2002 21:59 schreef NDF82 het volgende:
maak van
code:
1
InputStreamReader input = new InputStreamReader(client.getInputStream());

eens dit:
code:
1
BufferedReader input = new BufferedReader(client.getInputStream());

je kunt nu een hele regel uit de InputStream lezen met:
code:
1
String s = input.readLine();

succes
Klopt, bedankt... :)

Ik had dit nogtans ook al geprobeerd, maar toen lukte het me niet. :?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-07 21:46

Confusion

Fallen from grace

-Avalanche- schreef:
met
code:
1
input.read(msgRcv);

las ik steeds slechts 1 byte in van de reply. Als je goed het opgelet, zag je dat mijn reply juist 8 tekens was (1 byte) dus. Wat die [ er bij deed, snap ik nu ook nog niet.
Huh? Als msgRcv een char[] is, dan roep je met read(msgRcv) de read methode van de superklasse java.io.Reader aan en daarvan zegt de API:
Read characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
Het is toch onzinnig als deze wacht op input en zodra het 1 teken krijgen, het programma verder laat gaan? Wat is dan het nut van het hebben van een array als parameter?

Wie trösten wir uns, die Mörder aller Mörder?


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

Beetje offtopic maarre hoe zit het nou met jou MSN client NDF 82 :?

ik zal de mijne is een keer ergens online zetten.

ow ja en wie is zaadje? >:)

groeten


  • joho
  • Registratie: Januari 2000
  • Laatst online: 11:14

joho

 

Het probleem licgt niet aan het lezen van een reply,
maar in het afbeelden op het scherm.
Die [C@12345 die je ziet is de .toString van een character array
[ -> array
C -> character
@12345 -> adres in geheugen
Je moet niet het array afdrukken, maar de inhoud
Pagina: 1