А логин-пароль откуда получать до создания сокета?
Ну в смысле создали сокет, проверили данные, успех - продолжаем обмен через этот сокет.
А разрыв соединения следует производить только при выходе из приложения (сбросе авторизации)? Просто, под влиянием fortuneserver\client, мне почему-то казалось, что новый сокет создаётся при каждом новом запросе к серверу и разрывается после получения ответа.