A package for additional network functionality. The functionality of this package is mostly used by the Application invitations during the chat session. This includes functionality to create additional connections, and utility classes like XmlFunctions. Due to linking issues, these classes have been moved out of the "Networking code package".
For file transfers, two distict classes are provided. Old (pre 6.0) MSN Messenger clients use the MsnFtpConnection to transfer files. New clients use the MsnDirectConnection to transmit P2P-messages directly between end-hosts. To support NAT-ed setups, clients attempt to connect to both the internal and external IP-address of a host. The connection attempts are managed by the DirectConnectionPool class. During the setup of a direct connection, both end-hosts may attempt to connect to each other. The DirectConnectionBase implements a transparent handling of client/server sockets to address this complexity.