TOC protocol: Difference between revisions

Content deleted Content added
Reverted 2 edits by 2600:1009:B12A:C6CB:0:8:F71A:A101 (talk): Unexplained removal of wikilinks; looks like test edit (TW)
Tags: Mobile edit Mobile web edit
Line 5:
 
== How it works ==
TOC acted as a [[Wrapper pattern|wrapper]] for the OSCAR protocol. In the grand scheme of things, the TOC server was nothing but an OSCAR client that happened to listen on a [[Internet socket|socket]],sockets translating messages between the two protocols. Upon login, the TOC client specified an OSCAR login server (presumably either <tt>loginogin.oscar.aol.com</tt> or <tt>login.icq.com</tt>) that the TOC server used on behalf of the client.
 
TOC used [[FLAP]] to encapsulate its messages just as OSCAR does, however, FLAP has been hacked in such a way that it can be implemented on the same port as an [[HTTP]] server. By default, the TOC server operated in HTTP mode, indistinguishable from a typical web server. If a connecting client, in place of an HTTP request, writes the string "<tt>FLAPON</tt>" followed by two [[CRLF]]sCRLFs, TOC would switch gears and start reading FLAP messages. Upon getting a user's profile, the client was expected to re-connect to TOC and use it as an HTTP server, which would host the user's profile in [[HTML]].
 
Once connected, two basic message formats for communications inside of FLAP existed. Client-to-server messages were sent in a format resembling a [[Unix]]- style command line: commands with [[Whitespace character|whitespace]]- separated arguments, [[quotation|quoting]] and [[backslash]] [[escape sequence]]ssequences. Server-to-client messages were much simpler: they were sent as [[colon (punctuation)| colon]]- separated [[ASCII]]ASC strings, in a manner similar to many [[Unix]] config files. Thus, it was quite easy to write a client, as the incoming messages were very easy to parse, and outgoing commands were easy to generate.
 
This is in contrast to OSCAR, which due to the binary representation of data can be more difficult to understand.