FLAP transport, Visual Basic .net [ICQ] Benannte Channels erstellen

  • VB.NET

    FLAP transport, Visual Basic .net [ICQ] Benannte Channels erstellen

    Guten Tag,
    ich möchte einen Client für ICQ schreiben dieses basiert aber auf dem FLAT transport prokokoll (und ein paar weiteren) dazu muss ich 5 TCP Channel erstellen, die benannt sind.
    Hier ein paar Informationen über das FLAT transport protokoll:

    Diese Channel möchte ich in einer TCP leitung erstellen:
    * 0x01 - New Connection Negotiation
    * 0x02 - SNAC data
    * 0x03 - FLAP-level Error
    * 0x04 - Close Connection Negotiation
    * 0x05 - Keep alive


    Spoiler anzeigen
    FLAP is a low-level communications protocol that facilitates the development of higher-level, datagram-oriented, communications layers. It is used on the TCP connection between all clients and servers. Here is format of FLAP datagram:


    2A byte FLAP id byte
    xx byte FLAP channel
    xx xx word FLAP datagram seq number
    xx xx word FLAP data size

    ...... FLAP data


    FLAP id byte is always 0x2A. It is frame-start sign.

    The flap sequence numbers used for errors detection. So server can detect problem when client set flap data size field = 10 and write 20 bytes 0x2A as data. The flap sequence number origins are picked quite randomly. There is no connection between the sequence number set from the server and the set from the client. Sequence numbers are always incremented upward (towards 0x8000) for each command sent. If the sequence number does reach 0x8000, it will wrap to 0x0000, for obvious reasons. If you start a new connection, it is recommended that a new sequence number origin is picked for that connection, for purposes of internal coherency. Sequence numbers are independent of channels: there's a single series of sequence numbers per TCP connection (per socket).

    Channels are the method used to multiplex separate paths of communication across the same TCP socket. These are analogous to TCP/UDP port numbers. Five channels are currently used by OSCAR:

    * 0x01 - New Connection Negotiation
    * 0x02 - SNAC data
    * 0x03 - FLAP-level Error
    * 0x04 - Close Connection Negotiation
    * 0x05 - Keep alive


    Nun habe ich lange zeit gegoogelt und bin hierauf gestoßen: TcpChannel MSDN

    Jedoch finde ich dort keinerlei möglichkeiten die Channels zu benennen.

    Bin für jede Hilfe dankbar.