2
голосов
1ответов
587 просмотров

Оптимизация LAN-сервера для игры

Я сетевой программист в школьном игровом проекте. Мы хотим иметь до 16 игроков одновременно в локальной сети. Я использую модель сервер-клиент и создаю новый поток для каждого клиента, который присоединяется. Однако много процессорного времени тратится впустую, просто проверяя в каждом потоке, п...

2
голосов
3ответов
2303 просмотров

Проектирование распределенной системы с использованием только C

У меня есть работа по реализации распределенной системы узлов (например, узлов p2p), каждый из этих узлов (скажем, A, B, C и D) выполняет определенные функции и должен взаимодействовать друг с другом для различных операций, таких как синхронизация операции и другие вещи, такие как 15 узлов A, вз...

1
голосов
2ответов
768 просмотров

Как управлять несколькими клиентскими сеансами в серверном приложении?

Я пишу приложение для веб-чата, похожее на GTalk.Он основан на Orbited + Sinatra для клиентской стороны и Ruby для серверной части.Я уже реализовал весь протокол, все работает хорошо.Но.У меня проблема - не знаю, что делать, если от одного пользователя несколько подключений.Скажем, например, я в...

5
голосов
1ответов
1700 просмотров

Документация Boost.Asio не существует.Что означают эти ошибки?

Я борюсь с двумя ошибками с Boost.Asio. Первое происходит, когда я пытаюсь получить данные через сокет: char reply[1024]; boost::system::error_code error; size_t reply_length = s.receive(boost::asio::buffer(reply, 1024), 0, error); if (error) cout << error.message() << endl; //...

3
голосов
2ответов
9069 просмотров

Как инициализировать struct in6_addr?

Я знаю один способ сделать это, const struct in6_addr naddr6 = { { 0x3f, 0xfe, 0x05, 0x01, 0x00, 0x08, 0x00, 0x00, 0x02, 0x60, 0x97, 0xff, 0xfe, 0x40, 0xef, 0xab }}; но не мог с этим, const struct in6_addr naddr6 = ...

0
голосов
3ответов
1104 просмотров

Как получить время другой системы с помощью сетевого программирования на C #?

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

0
голосов
1ответов
3007 просмотров

Добавление подключенного диска с WNetAddConnection2 недоступно

Я пытаюсь подключить диск с помощью WNetAddCOnnection2, но что-то не так.Код, который я использую с pinvoke.net , кажется, работаетсначала.Если я выполняю код, я получаю 0 в качестве ответа и могу использовать System.IO.Directory.GetFiles() для проверки нового подключенного диска, что наводит м...

1
голосов
10ответов
8367 просмотров

Кодирование, декодирование целого числа в массив символов

Обратите внимание, что это не домашнее задание, и я искал перед тем, как начать новую беседу. Я получил Сохранить int в массиве символов? Я искал ответ, но не получил удовлетворительного ответа в приведенной выше теме. Вот мое требование: я хочу закодировать свои данные (например, целое ...

1
голосов
1ответов
422 просмотров

почему обычный вызов if_freenameindex удваивает освобождение if_nameindex?

Я изучаю программирование сокетов под Linux, поэтому я делаю образец программы для перечисления всего сетевого интерфейса, вот код /* print the name of interface */ #include <sys/socket.h> #include <net/if.h> #include <stdio.h> int main(void) { struct if_nameindex *pif; ...

1
голосов
1ответов
2625 просмотров

Delphi - Как контролировать сеть

Может ли кто-нибудь дать мне некоторые указания о том, как регистрировать посещенные веб-страницы (с помощью любого веб-браузера)?Сделать глобальный прокси .... подключить сеть ....?Все, что мне нужно регистрировать, - это адрес страницы, а не содержащаяся в ней информация. Я использую Delphi...

1
голосов
1ответов
1641 просмотров

многоадресный IP-адрес - заблокирован при вызове recvfrom

Я пишу простое многоадресное приложение. я собираюсь запустить его на локальном хосте. я сделал следующее: char *maddr; . . . sendfd = socket(...); struct sockaddr_in sasend; sasend.sin_family = AF_INET; sasend.sin_port = htonl(portno); inet_ntop(maddr, &(sasend.sin_addr.s_addr)); s...

0
голосов
3ответов
2421 просмотров

какой IP-адрес принимает возврат

см. следующий код: accept(sockfd, (struct sockaddr*)&cliaddr, &slen); cout << inet_ntop(AF_INET, cliaddr.sin_addr, ipv4addr, 100); мой клиент подключается с локального хоста. я получаю абсурдный адрес на выходе.это не мой IP-адрес.каждый раз, когда я запускаю код, я получаю ...

0
голосов
5ответов
237 просмотров

Вопрос о частной сети (как в IPv4)

Я работаю над встроенным стеком TCP / IP4 и материалами HTTP / SNMP / SMTP. Функционально он работает, но я хочу, чтобы он работал быстрее в локальной сети. Из-за алгоритма Нэгла и отложенного TCP-ACK, Кажется, что приложение HTTP работает медленно даже в локальной сети. Как видно на http://...

2
голосов
1ответов
994 просмотров

Select () проблемы в C (windows 7)

Я пытаюсь создать сервер, который использует select () для обработки нескольких клиентов, в отличие от многопоточности, которую я уже выполнил.Однако select (), похоже, ничего не делает?У меня есть все необходимые системные вызовы, например.socket () возвращается к int, называемому слушателем.bi...

2
голосов
3ответов
400 просмотров

Можно ли использовать select () для клиентов, а не только для серверов?

Я хотел бы создать TCP-клиент, который устанавливает несколько соединений, в то время как цикл select (), который получает от них данные, выполняется в отдельном потоке .Я не уверен, что это возможно, потому что цикл select () уже запущен, и поэтому я не понимаю, как он «заметит» добавление нов...

9
голосов
3ответов
11347 просмотров

Путаница в htons- little endian / big endian

Когда я отправляю целочисленную переменную из одного процесса в другой через сокет, а затем печатаю значение на полученном конце, значение остается прежним без использования ntohl / htonl, тогда где мне нужно использовать эти функции, кроме инициализациирозеточные конструкции.Я понимаю little / ...

0
голосов
2ответов
70 просмотров

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

Существуют некоторые веб-службы, такие как преобразование файлов .flv в файлы .mp3, файлов .doc в файлы .pdf и т. д. Это серверы, которые принимают файлы от пользователя и применяют уважаемые приложения (например, преобразование)..После этого преобразованный файл может быть доступен запрашиваемо...

1
голосов
2ответов
417 просмотров

розетка "читает" виснет, если MacBook спит больше 10 минут

Я пишу приложение, в котором сокет подключается к хосту и загружает файл. Приложение работает на Mac. Теперь, когда приложение загружается, если я переведу MacBook в спящий режим более чем на 10 минут, приложение зависнет в 60% случаев, когда компьютер проснется. Трассировка стека показыва...

11
голосов
4ответов
1835 просмотров

Лучшие практики высокопроизводительных сетевых приложений

Во время тестирования сервера многоадресной рассылки UDP, который я написал для Windows 7 Ultimate x64, я натолкнулся на очень любопытную вещь. Воспроизведение музыки с помощью foobar2000 в фоновом режиме значительно улучшило скорость передачи данных сервера, но также привело к незначительной ...

10
голосов
1ответов
5760 просмотров

Как создать сокет Boost.Asio из собственного сокета?

Я просто пытаюсь создать усиление ip::tcp::socket из существующего собственного сокета.В функции assign ,первый параметр должен быть «protocol_type», а второй должен быть «native_type», но он никогда не объясняет, что это такое, и не дает пример его использования. Я предполагаю, что вторым д...

4
голосов
2ответов
124 просмотров

Множество портов с небольшим объемом данных или один порт с большим объемом данных?

Я проверял, используя систему под названием ROS ( http://www.ros.org ) для работы. Существует множество различных типов данных, которые отправляются между сетевыми узлами в ROS. Вы определяете структуру данных, которую хотите отправить в сообщении, и ROS будет обрабатывать открытие определен...

2
голосов
3ответов
866 просмотров

Python, Pygame, Pyro: как отправить поверхность по сети?

Я работаю над проектом на Python с использованием pygame и pyro.Я могу легко отправлять данные, функции, классы и тому подобное.Однако я не могу отправить поверхность по проводу, чтобы она не умерла у меня в пути. Сервер создает поверхность в def __init__ классе, доступ к которому осуществляе...

1
голосов
3ответов
3036 просмотров

Запуск простого TCP-сервера с poll (), как мне «искусственно» запускать события?

У меня есть довольно простой TCP-сервер, который отслеживает пару подключений и получает данные, когда они доступны.Однако я хотел бы искусственно инициировать событие из самой программы, чтобы я мог отправлять данные своего TCP-сервера , как если бы они поступили из sock1 или sock2, но на само...

4
голосов
3ответов
10366 просмотров

Анализ пакетов с использованием сырых сокетов в Linux на C

Мне нужно написать сниффер пакетов в Linux, который обнаруживает отправленные пакеты HTTPS и сохраняет URL-адрес из запроса. Я нашел код для этого в security-freak и запустил его . Этот код работает и прослушивает только полученный пакет, но мне нужно получить отправленный пакет в сниффере. К...

144
голосов
7ответов
88797 просмотров

Netty против Apache MINA

Они оба предоставляют примерно одинаковые функции. Какой из них выбрать для разработки высокопроизводительного TCP-сервера? Какие плюсы и минусы? Справочные ссылки: Apache MINA ( источник ) Netty ( источник )

8
голосов
3ответов
13329 просмотров

Сетевые библиотеки игр в реальном времени для игр на Java и Objective-C

Я собираюсь создавать игры в реальном времени с использованием выделенного сервера Java и клиентов iphone, а также клиентов настольных компьютеров Java. Какие из доступных высокопроизводительных сетевых транспортных библиотек, которые можно использовать для разработки многопользовательских игр в...

2
голосов
4ответов
905 просмотров

Разработка простого сетевого пакета

Я изучаю программирование сокетов (на Python), и мне было интересно, какой способ инкапсуляции данных является наилучшим / типичным? Мои пакеты будут использоваться для выполнения команд запуска, остановки, настройки и т. Д. На принимающей стороне. Полезно ли использовать JSON или просто текст?

3
голосов
6ответов
3292 просмотров

Имя адаптера петли в Linux

Можно ли предположить, что сетевой адаптер с обратной связью в системе Linux всегда будет называться 'lo' - это просто соглашение об именах, которого нельзя придерживаться, или так должно быть всегда?

3
голосов
3ответов
4915 просмотров

Twisted: исходный IP-адрес для исходящих подключений

Я занимаюсь реализацией службы, написанной на Python с использованием фреймворка Twisted, работающей на Debian GNU / Linux, которая проверяет доступность серверов SIP. Для этого я использую метод OPTIONS (функция протокола SIP), поскольку это обычная практика. Чтобы создать правильные и совмести...

3
голосов
5ответов
917 просмотров

Использование TCP для команд в реальном времени: алгоритм Нэгла вызывает огромные задержки, что мне делать?

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