Рубрика «socket» - 2

Особенности получения пакетов через raw socket в Linux
Linux (в отличии, к примеру, от FreeBSD) позволяет использовать сырые сокеты не только для отправки, но и для получения данных. В этом месте существуют интересные грабли, на которые я наступил. Теперь спешу показать их тем, кто еще на знает, чтобы каждый, используя свой любимый язык программирования, будь то C++ или Python, мог опробовать их в деле.

Суть граблей изображена на рисунке, чтобы те, кто уже в курсе, не тратили свое время.
Читать полностью »

Корректное отключение

Для корректного завершения сетевого подключения обе стороны должны послать пакеты с сигналом о завершении (FIN), которые указывают что стороны не будут больше отсылать данные, также каждая сторона должна подтвердить (ACK) получение сигнала о завершении сетевого обмена данными. FIN инициируется когда приложение вызывает метод close(), shutdown() или exit(). После завершения работы метода close() ядро переходит в режим ожидания подтверждения от второй стороны приема сигнала о завершении. Это делает возможной ситуацию когда процесс инициировавший отключение будет завершен прежде чем ядро освободит рессурсы связанные с подключением, и снова разрешит использовать порт для связывания с другим процесоом (в этом случае, при попытке использования порта мы получим исключение AddressAlreadyInUse).

«Address Already in Use» или как избежать проблем при завершении TCP соединения
Читать полностью »

Мне предстоит проект, модуль которого будет большую часть времени работать с другим сервером, отправляя ему GET запросы.
Я провел тесты чтобы определить каким способом получать страницу будет быстрее (в рамках предполагаемых технологий проекта).

Первые 3 теста: каждым из способов выполнялось по 50 запросов подряд к одному сайту.

image
Читать полностью »

Поддержка протоколов TLS/SSL для сокетного соединения на AS3

Мы разрабатываем Flash клиент для клиент-серверного приложения с постоянным сокетным соединением и нам важно защититься от прослушки трафика. Один из способов такой защиты — SSL/TLS шифрование. Во Flash сделать это можно двумя путями — использовать родной SecureSocket или TLSSocket из библиотеки as3crypto. Ниже мы обсудим плюсы и минусы, производительность, а также проблемы с которыми мы столкнулись при внедрении обоих вариантов. Читать полностью »

Рад поделиться новостью о начале проекта с народным финансированием «Андроид розетка»!
image

Я уже рассказывал об истории этого проекта в отдельной статье. Там мы обсудили саму идею, реализацию, нашли конкурирующие технологии/продукты и главное — нашли дополнительные функции, которые в розетку удалось встроить.
Собственно теперь я хочу рассказать о законченном предложении получившегося продукта.
Читать полностью »

Приветствую! Это статья об истории (надеюсь) начала еще одного «инновационного» проекта.

Начну с истории (много букв), как я пришел к этому проекту, но кому это не очень интересно смогут перейти сразу к описанию проекта во второй части статьи.

Итак, история

Я работаю аналитиком в одной софтверно-телекомовской компании и имею хороший опыт формулирования, структуризации бизнес и системных требований. Однако, чистая аналитика пока не позволяет человеку получать готовые результаты даже несмотря на то, что позволяет вполне детально спроектировать решение какой-нибудь задачи. В прошлом году решил изучить прикладной язык программирования и начал с Java. Нашел давно заброшенный мною курс основ этого языка на intuit и дочитал. Был приятно удивлен, как быстро изучается язык, когда есть хорошая база UML.

Чтобы знания были не ради знаний я решил по окончанию курса лекций написать что-то полезное для общественности — начал с программы для андройд. Для этого изучил его фрэймворк и сделал простейшую программу PIN card для напоминания пин-кодов с помощью парольной карты (хороший реализаций на андройде не нашел — решил сделать). За пол года скачали 50 человек за доллар.
Читать полностью »

Работа с сокетами в СУБД Caché. Пример реализации серверной части протокола WebSocket
СУБД Caché для взаимодействия через TCP/IP с удалёнными процессами посредством сокетов предоставляет низкоуровневые команды, что может представлять собой сложность для новичков.

А есть ли возможность использовать сокеты «по-другому», не теряя при этом в гибкости, скорости и удобстве разработки?

Читать полностью »

Так уж случилось, что на работе я с небольшой командой единомышленников занимаюсь написанием приложений для смартфонов, в частности iТелефон и Андроид.

Начинали мы с разработок под iPhone, где все работало гладко и как положено.
А что работало? Основная задача приложения была послать запрос «Где ты?» — ничего сложного. Но уж очень хотелось бы этот запрос доставлять адресату как можно быстрее, пока он еще актуален. Здесь, имеющий опыт в разработках под iPhone, читатель скажет, что есть APN Service, и будет абсолютно прав. Именно им мы и пользовались, и не знали горя, ибо доставлялись эти уведомления быстрее секунды.

Затем по некоторым внутренним причинам мы перешли на разработки под Android и быстренько все портировали. В частности без каких-либо задних мыслей модуль работы с APN был заменен на аналогичный с C2DM.

На всех телефонах разработчиков проблем с доставкой уведомлений не было. А вот у новых пользователей сразу вскрылась огромная проблема — время доставки уведомления никак не гарантировано, и некоторые из них доходили через несколько часов. Причем на соседнем же устройстве они доходили за секунды.

В ходе исследования этой проблемы я натолкнулся на ряд странных особенностей работы этих уведомлений от Google.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js