To provide a flexible, unstructured file transfer service, an application can make a connection and then use that connection to send and to receive files and information in an event-driven manner. For instance, a drag-and-drop file transfer application would make a connection and then transfer files as directed by the user.