Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.08.2010, 01:15
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 21  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
На ум приходит только проблема с crossdomain.xml, который сервачок должен отдать клиенту сразу после коннекта, иначе амба. http://www.flasher.ru/forum/showthread.php?t=135168
А так, гадать не особо желание имеется... исходник сервера выложь, а посмотрим.

Старый 02.09.2010, 11:10
Dimrix вне форума Посмотреть профиль Отправить личное сообщение для Dimrix Найти все сообщения от Dimrix
  № 22  
Ответить с цитированием
Dimrix

Регистрация: Aug 2010
Сообщений: 9
Проблему с сервером победил (во флеше 0й байт передавать нужно как \n для моего сервака на с++, а вот серваку нужно отдавать как строка+0). Но у меня проблема другая:
А от чего зависит скорость ответа сервера? У меня написана серверная часть на С++, которая принимает поток от одного клиента и просто ретранслирует его другому клиенту. Подсчёт переданных пакетов (передача происходит 30 раз/сек) и полученных пакетов дала мне статистику, что из 30 доходит лишь 10 пакетов. Я нашёл способо "прогнозирования" 5 пакетов из 6, что бы "сгладить" результаты, получаемые 2ым клиентом, но хотелосьбы что бы передавались все 30 пакетов/сек - это возможно или нет. Если возможно, то в чём затык: железо? криво написанный сервер? медленный клиент?
ЗЫ: в 1 пакете передаётся 10Байт
ЗЗЫ: для "сглаживания" стал передавать 20Байт, при этом на скорость работы это никак не сказалось (как было 10 из 30 так и осталось). Тестировал: передавал 40Байт в 1 пакете - всё-равно 10/30, посему складывается впечатления, что проблема скорее всего или в возможности сетевого адаптера или вообще в возможности так часто передавать дынные.

Старый 02.09.2010, 12:11
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 23  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
А пинг у вас до сервера какой с клиентов?
имхо, слать пакеты с интервалом меньшим отклика сервера на пинг не гуд.

Старый 02.09.2010, 13:21
Dimrix вне форума Посмотреть профиль Отправить личное сообщение для Dimrix Найти все сообщения от Dimrix
  № 24  
Ответить с цитированием
Dimrix

Регистрация: Aug 2010
Сообщений: 9
Обмен пакетами с 10.0.254.230 по 32 байт:

Ответ от 10.0.254.230: число байт=32 время<1мс TTL=61
Ответ от 10.0.254.230: число байт=32 время<1мс TTL=61
Ответ от 10.0.254.230: число байт=32 время<1мс TTL=61
Ответ от 10.0.254.230: число байт=32 время<1мс TTL=61

С пингом всё ок, ибо машинка в локальной сети находится.

Старый 05.09.2010, 14:05
Dimrix вне форума Посмотреть профиль Отправить личное сообщение для Dimrix Найти все сообщения от Dimrix
  № 25  
Ответить с цитированием
Dimrix

Регистрация: Aug 2010
Сообщений: 9
Написал многопользовательский сервачёк. Клиенты успешно к нему конектся. Но есть одна проблема, которую не могу пока решить (вернее могу, но метод решения мне кажется через...). Вообщем рассмотрим задачу например из 2х клиентов:
1. клиенты конектятся к серваку и тут всё ок
2. мне нужно что бы сервак ретранслировал пакеты от 1го клиента 2му и наоборот. Вот тут и появляется загвоздка. Фишка в том, что клиентов может быть сколь угодное кол-во и они могут объеденятся в любое колво между собой (например игра с 5 соперниками, 11 соперниками 112 соперниками и т.п.) и таких объединений тоже может быть различное кол-во. Ввиду этого я планировал создать "список списков". Список 1го уровня - это список "объединений" в котором хранится информация о том начата турнир или нет и ссылка на список 2го уровня. Список 2го уровня хранит информацию об игроках зарегестрировавшихся в турнире. Реализацию списками вижу наиболее преемлимым, т.к. как в списке 1го уровня так и в списке 2го уровня могут выбывать клиенты в произвольном порядке, т.о. если это реализовать массивами (динамическими), то будет происходить обход "по мёртвым" клиентам (а это процессорное время) или думать о вырезании элементов из массива (тоже время процессора тратить). Реализация списком наиболее преемлемой как мне кажется. Но я не учёл тот момент, что "список" у меня генерирует клиент, посылая специальную команду и этот список к сожалению "локальный", т.е. когда игрок1 послал команду создать игру: в списке появилось по 1му элементу, а когда 2ой игрок посылает команду на соединение, то его список до сих пор пустой, т.к. список создался у потока игрока1. Можно ли как то создавать переменные, которые будут доступны всем клиентам, которые подключились и если есть возможность - то как это реализовать.
ЗЫ: метод, который приходит в голову через ж: это написать ещё 1го киента на си++, которому будут передаваться все команды с сервака и именна в клиенте будут хранится все данные, т.о. любой "флеш-клиент" через сервак отправляет и получает данные с "с++ клиента" - но эта схема на столько грамоздка, что... вообщем хочу сделать по человечески а не как получится :-)

Старый 09.06.2011, 01:25
1995kenny вне форума Посмотреть профиль Отправить личное сообщение для 1995kenny Найти все сообщения от 1995kenny
  № 26  
Ответить с цитированием
1995kenny

Регистрация: Jun 2011
Сообщений: 1
Получилось сделать, чтоб сервер (как в 10 сообщении) давал в ответ клиенту его же сообщения, но как сделать связь между всеми сокетами, тоесть чтобы один клиент отправлял сообщение всем остальным(как в чате).
Посоветуте плиз какую-нибудь книжку, чтоб узнать о win сокетах в c++, а то MS ..слишком на английском
И возможно ли в socket.connect("127.0.0.1", 2803); написать не ip, а реальный домен сервера(а то у него динамичейский ip)
Извиняюсь, что поднимаю такую старую тему, но это лучшая тема.. по этой теме
Спасибо большое заранее

Старый 11.06.2011, 09:50
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 27  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Книжек немало всяких, гуглите и выбирайте на ваш вкус. Win Socket - тема немаленькая. Но неплохо так же запастись каким-нибудь исходничком. Опять же в гугл. Могу порекомендовать покопаться на sources.ru, там раздел есть огроменный с исходниками. Туда же rsdn.ru, codeproject.com, codeguru.com. Хорошие ресурсы.

Старый 23.09.2011, 17:47
GameFlasher вне форума Посмотреть профиль Отправить личное сообщение для GameFlasher Найти все сообщения от GameFlasher
  № 28  
Ответить с цитированием
GameFlasher

Регистрация: Sep 2011
Сообщений: 8
А можете подсказать как сделать чтобы сообщение отсылалось всем подключившимся клиентам? Или хотя бы в какую сторону копать?

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.