Как стать автором
Обновить
8
0
Эрик Замабувараев‐Ёмолкуу @Mabu

BASIC программист

Отправить сообщение

Неблокирующий режим — это ещё не асинхронный режим.

В неблокирующем режиме вам придётся проверять данные либо по таймеру, либо делая Sleep() между вызовами. Это хуже, чем создание отдельного потока. 1. Если данных нет, программа всё равно будет нагружать процессор проверками, разряжать батарею. И чем меньше период — тем выше нагрузка. 2. Данные обрабатываются не сразу при поступлении, программа не сможет отвечать на данные быстро. Например, это важно для торговых ботов.

Поэтому лучше сразу использовать асинхронные сокеты и перекрывающиеся операции.

C:/Windows/System32

Что у вас с разделителями путей? Должно быть \.

MAKEWORD(2,2)

Это не функция, это макрокоманда в заголовочных файлах, вы не найдёте её в виндовых DLL.

Но как же явно указать адрес и порт для привязки сокета?

Чтобы не возиться с приведениями к нужным типам, подсчётам 14 байт, каким‐то htons, используйте функцию GetAddrInfoW (или неюникодную оболочку над ней getaddrinfo), которая сама заполнит sockaddr, sin_addr и прочие sockaddr_in. К тому же GetAddrInfoW можно использовать и для заполнения данных для функции connect.

После вызова данной функции (listen) исполнение программы приостанавливается до тех пор, пока не будет соединения с Клиентом, либо пока не будет возвращена ошибка прослушивания порта.

Нет. listen не блокирует поток, иначе вы не доберётесь до accept.

Привязка сокета к конкретному процессу (bind) не требуется, т.к. сокет будет привязан к серверному Адресу и Порту через вызов функции connect()

Всё же рекомендую привязывать клиентский сокет, чтобы вы могли выбрать через какой IP адрес и какую сетевую карту будут ходить ваши данные.

Вообще функции recv и send подходят только для учебных программ вроде телнета. Ни для GUI, ни для больших приложений это не походит, потому что они блокируют поток. Если у вас что‐то посложнее laba06.cpp, то также не мучайте select. Сразу используйте асинхронные сокеты и перекрывающиеся операции ввода‐вывода (OVERLAPPED), WSAReceive и WSASend, для сервера — порт завершения ввода‐вывода.

  1. Всё визуальное — это только для здоровых и спортивных людей. Как будут программировать люди, например, с ограничениями зрения или подвижности?
  2. Как с визуальным кодом будут работать утилиты автоматизации, например, для рефакторинга?
  3. Усложнение алгоритма приводит к нелинейному росту «площади» программы, появляются горизонтальные и вертикальные полосы прокрутки, постоянные изменения масштаба холста.
  4. Как вы будете делать визуальную разницу между двумя коммитами в системе контроля версий?

А программа которая для conhost поставляет данные, она знает, что должна конвертировать строку в байты в кодировке 65001 или по‐прежнему отдаёт их в 1251 и 866?

Нет конечно. ReadFile будет отдавать байты в том виде как их отправила другая сторона, без конвертации из одной кодировки в другую.

Потому что ReadFile заполняет буфер байтами, а не символами. Задача программиста конвертировать массив байтов в символы и строку.

Предлагаю вообще обойтись без жёстких и мягких дисков, и всю систему с файлами держать в оперативной памяти. В этом случае информацию уничтожает выключение электричества.

Сложность в том, что границы жанров расплывчаты. Также авторам необходимо нарушать жанровые рамки, чтобы произведение было живым, не набором штампов и клише. Если в «Звёздных войнах» заменить световые мечи на обычные, планеты на государства — вы получите фэнтези.

По аналогии со словами русскоязычный, англоязычный: эсперантоязычный.

Интересно, а когда уберут озвучку действий? А то от фразы «Введите пинкод. Введённый вами пинкод 5846 верный» как‐то не по себе.


Кстати, а зачем вообще нужна озвучка? Для слепых, что ли? На сенсорном экране?

Для начала нужно перестать употреблять слова «мусор, отходы, отбросы, хлам» и вместо них использовать «вторсырьё».


стекло практически не разлагаются в окружающей среде

Дело не в том, что стекло не разлагается, камни тоже не разлагаются, дело в том, что получать стекло из песка дорого, дешевле переработать уже готовое стекло.


отказаться от пластика и полиэтилена, заменив его на бумагу или на разлагаемый биопластик

Неверно. Производство бумаги экологически грязнее, чем производство пластмассы.


разлагаемый биопластик

Опять неверно. Не должно быть одноразового, должно быть перерабатываемое. Иначе нет смысла что‐то перерабатывать.


людям проще купить и потом выбросить пластиковый пакет, но если цена будет равной или пластиковый пакет будет стоить 30 рублей а бумажный 15, то людям будет выгодней покупать бумажные аналоги

Неверно. Люди берут пакет не из‐за цены, а чтобы донести множество продуктов до машины; на цену этого пакета смотрит никто.

Не очень хорошо понимаю, зачем вообще выключать компьютер? Это ж потом опять запускать все программы, визуальные студии, браузёры с сотней вкладок, блокноты, торренты, косынку, проигрывателей песен и фильмов. Наверное, нужно просто нагрузить жёсткий диск операциями, чтоб быстрее износился.

Нет.


16 апреля 2008 года Татьяна Голикова издала приказ «О внесении изменений в приказ от … 14 сентября 2001 г. № 364 „Об утверждении порядка медицинского обследования донора крови и её компонентов“», который отменил запрет на сдачу крови мужчинами, практикующими секс с мужчинами.

Общепринято функции обратного вызова в COM (события) используют интерфейс IConnectionPoint, смотрите в этом направлении. Издатель событий публикует общедоступный интерфейс, который реализуют подписчики. Затем получатели событий запрашивают у сервера экземпляр IConnectionPoint, передают туда объект, унаследованный от общедоступного интерфейса. Теперь сервер может вызывать функции общедоступного интерфейса, что равно вызову функции на стороне клиента.


В случае если клиент и сервер находятся в разных исполняемых файлах, то общедоступный интерфейс события проще унаследовать от IDispatch, чтобы не возиться с прокси‐заглушками.

If <условие прерывания> then break

А там точно break, а не Exit Do?

Не пивот, а опорный элемент.

Таймеры и события — это объекты ожидания, они не производят операции ввода‐вывода, им IOCP ни к чему.


Насколько знаю, порт завершения ввода‐вывода одинаково инициализируется для файлов и сокетов; на сокетах и файлах асинхронные операции запускаются одной и той же функцией ReadFile.

Я правильно понимаю, что подготовка к собеседованию — это получение знаний, а получение знаний — это прямой обман работодателя? Значит, знания получать не следует, с ними надо рождаться.

Информация

В рейтинге
Не участвует
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность