Показать-то показало, но главной ошибкой было вообще за него браться, по-моему. То есть если задание на 100 строк кода «проверим умеете ли вы писать хорошо», то их стоит откомментить, подумать над абстракциями и сделать тестики. Но это же было задание «посмотрим, как вы один сделаете целиком проект», мне кажется что довольно странно давать такое задание и ожидать комментариев в коде.
4. данные будут выровнены по 8-ми байтам, а значит если вы используете SSE intrinsics на данных, память для которых выделена аллокатором, то столкнётесь с трудноуловимыми проблемами, потому как память нужно выравнивать по 16-ти байтам.
я вам про фому, вы мне про ерёму.
да вот говорю же, возьмите телнет и телнетом походите по интернету. полазьте по хттп и по фтп, и сами проверьте, если не можете взять и прочесть всё в документации и подумать головой. лучше всего даже взять, поднять у себя апач какой-нибудь с виртуалхостами и полазить вначале по нему.
что касается вашего вопроса, давайте думать вместе. мы жмём ftp vasya.ru, DNS резолвит vasya.ru в /1.2.3.4, подключаемся к 1.2.3.4:21 по tcp. заметили? мы не передавали имя домена ftp-серверу.
дальше наше общение регламентируется уже прикладным протоколом, в нашем случае FTP. никакого «общего способа повесить демон на виртуальный хост» нет и быть не может. в каждом протоколе, где такое возможно, своя реализация. вот фтп: www.w3.org/Protocols/rfc959/
нас интересует
4.1. FTP COMMANDS
4.1.1. ACCESS CONTROL COMMANDS
я настоятельно рекомендую взять в руки пинг и телнет и попробовать сделать всё самостоятельно.
потому что когда вы коннектитесь по ftp, вы передаёте имя пользователя. если требовать имя в формате vasya@domain.com, то мы получим имя домена. дальше в зависимости от имени домена вам могут подсовывать разные хоум директориз.
но сам фтп сервер висит на интерфейсе. если fwhejhfwjehvcwe.domain.com отрезолвится на адрес этого интерфейса, то вам ответит тот же самый фтп, что и на других доменах, которые резолвятся на тот же адрес. всё что происходит дальше — особенности реализации конкретного протокола.
ну, дело ваше. зачем тогда спрашивать, если всё равно java и энтерпрайз?
в node.js ваша задача решается из коробки примерно за 10-15 строк. в phpdaemon — наверное, чуть больше. оба вариант — голые сокеты. не вебсокеты, не комет, не аякс, ни хттп.
потоки для решения вашей задачи вам не нужны. всё это можно делать в одном потоке. не только можно, но и нужно, потому что много потоков нужно будет ещё и синхронизировать.
да, верно. лишь бы быстрее это как раз node.js. ну, или phpDaemon, если разберётесь. мне с node.js проще было, но это уже давно было, сейчас, кажется, phpdaemon сильно улучшился.
если будете делать на php, смотрите в сторону pecl-libevent. стандартный select в пхп не обрабатывает более 1024 сокетов одновременно, если только не залезть в исходники пхп и не поменять константу
> Правильным способом будет указанный выше запрос с INNER JOIN. Для того, чтобы собрать полученные данные в один массив, понадобится обойти полученный RecordSet в цикле по записям.
это — неправильный способ. если у юзера 10 атрибутов, зачем вам гонять туда-сюда 10 раз все поля из users?
нужно делать два запроса, один в user, второй в profiles, и вот уже потом сливать в один массив
тьфу ты. конечно же,
LEFT JOIN user_profiles as up1 ON up1.user_id=u.user_id AND up1.profile_key=«sex»
LEFT JOIN user_profiles as up2 ON up2.user_id=u.user_id AND up2.profile_key=«hobbie»
LEFT JOIN user_profiles as up3 ON up3.user_id=u.user_id AND up3.profile_key=«ещёчегото»