mypmyp

Созданные ответы форума

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Автор
    Сообщения
  • в ответ на: Ряд вопросов #3167

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    tyman, скажи а как ты сделал так: ( не знаю как правильно сформулировать)

    Вот допустим у нас 5 клиентов и у каждого отоброжается кружочек(игрок)  и 4 других кружочка(игрока)

    у каждого игрока есть координата X и Y и когда игрок передвигается то координаты передаются на сервер.

    каким образом сервер передает одному из клиентов координаты других 4 игроков. если переменные X и Y всего по одной

    Неужели нужно серверу создавать еще и x1 y1, x2 y2, и т.д ( а если их не 5 а 500) Как у тебя? И как вообще это осуществить? Может где описано?? Сама архитектура…Я рылся но не нашел

     

    в ответ на: Ряд вопросов #3161

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

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

    в ответ на: Передача и обработка данных #3151

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Ну возьми тот код что я скинул по твоей просьбе

    пакет пришел>>рапаковка>>  переменную x +1 >>запаковка>> отправка

    в ответ на: Ряд вопросов #3150
    +2

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Ну вот смотри) Надеюсь тебе что нибудь да и поможет. КОД НЕ ДОРАБОТАН.

    КЛИЕНТ

     

    в ответ на: Ряд вопросов #3147

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Да уж, 50 строк кода удалено и заменено на 1) Спасибо)

    в ответ на: Ряд вопросов #3145

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    А разве  это проканает с UDP???

    в ответ на: Ряд вопросов #3143

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Не могу решить проблем.

    socket.recieve(); программа замирает в этом месте если нету принятых пакетов.

    думал что if (socket.recieve() != sf::Socket::Done)

    исправит это но нифига, все равно программа останавливается в этом месте и ждет пакета, может есть варианты??

    в ответ на: Ряд вопросов #3142

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    1. На виртуальных серверах ограниченое количество подключений tcp. Здесь выгодней udp так как не надо резервировать места.

    Тут ты имеешь ввиду хостинг??

    2. У меня сервер генерировал карту и отправлял клиенту. Нужно передать всю карту, mas[45][45]. Отправлял цыклом, по 45 элементов за передачу. Если масив 46×46 то 46-тая передача не доходила. Клиент знает, что должно прийти 46 писем, по 46 элементов, по этому ждёт, а сервер пишет, что все отправлено. Тут надо быть окуратным.

    А ты уверен что карта должна генерироватся на сервере?? Мне кажется что это не целесообразно, как по мне карта генерируется у клиента и все обьекты. и при запросе клиента сервер говорит есть ли некий обьект на карте (моб,дерево,трава) или же нету. Хотя это зависит от твоей задачи, наверно.

    Такой вопрос, как ты сделал (если сделал) такую функцию

    Клиент 1 >> Сервер

    Cервер >> Клиент 2, 3, 4 …

    в ответ на: Ряд вопросов #3135

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    А ты с чем мучаешься TCP/UDP?

    Я до этого не дошел, но мне кажется что пинговать сервер/клиент (чтобы знать есть клиент или нету) нужно через некий отдельный канал. то есть: клиент отправляет (в цикле естественно) конкретный пакет! А на сервере его сравнивать. допустим если клиент отправил пакет и этот пакет == нашему пакету. то не удалять из списка.

    1. Если ты отправляешь данные, а клиент не принимает то программа стоит афк.

    Вот этого не понял , с кодом может быть пойму. Может у тебя проблема с ожиданием

    ведь если у сервера/клиента в цикле такая строка то программа замирает пока не получит пакет и строки дальше не читаются.

    Но это можно легко исправить таким if`ом

    И тогда даже если пакет не пришел то выполнение кода не стоит а продолжается.

    2. При передаче матрицы int больше 45×45 последние строки не передается. Сервер пишет, что отправил, а клиент ждет приема.

    Опиши тут то я точно не понял. Массив[45][45]?

    А передача частями?

    В документации были какие-то розетки с таймером ожидания передачи, но я так и не понял как ними пользоваться, по этому оптимальным есть передавать данные тому кто просит, а не всем по списку.

    Можно ссылку. по документации вообще нужно быть осторожным, я оттуда код скописатил, а там была в какойто сторке ошибка имени переменной Func  —  func как то так. И я 2 часа мучался, и библиотеки подключал( что я короче не делал) но нашел))) злой был пи….ц!)

    А вот по поводу Розеток(socket)  мне кажется это касалось TCP. Но не уверен.

    в ответ на: Ряд вопросов #3132

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Да, спасибо! Ты был прав по поводу Ip я не знал что что можно так сделать. Если бы ты не подсказал пришлось бы переводить string в ip, каким нибудь образом)

    в ответ на: Ряд вопросов #3131

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    А что же тогда использовать вместо string??

    Вот функция которая проверяет и добавляет нового клиента в список.

    Как по мне это оптимальный вариант, я не знаю что можно использовать вместо string.

    Ведь Ip (0.0.0.0) не целочисленный тип а кроме как string лучше варианта не вижу, поскольку не знаю..

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

     

    в ответ на: Ряд вопросов #3125
    +2

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Спасибо) Сделал через список, правда для ип адресса использовал string, но я не понял зачем тут таймер, можешь обьяснить?

    Если у кого нибудь возник такой же вопрос ( как запихнуть в список ип адреса) то вот рабочий код

    Чтобы получить Ип в клиенте вам нужно отправить данные на сервер (любые)

    socket.receive(buffer, sizeof(buffer), received, sender, port);

    таким образом принимаем сообщение и добавляем в список

    Add(sender.toString(), port, MyList);

    Если у кого есть идеи получше пишите)

    в ответ на: Передача и обработка данных #3124

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Вопрос еще Актуален?

    в ответ на: Ряд вопросов #3121
    +2

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

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

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

    Поскольку появился ряд вопросов.

    Как сделать список клиентов?

    Как узнать отключился ли клиент?

    Как отсылать всем клиентам сообщения?

    Как видно из цикла то при получении сообщения от клиента, я могу отправить только ему обратное сообщение.

    Действует некий прицип

    Клиент1 >> Сервер

    Сервер >> Клиент1

    Но если подключится еще один клиент то получается так

    Клиент1 >> Сервер

    Сервер  >> Клиент1

    Клиент2 >> Сервер

    Сервер >>Клиент 1

    А мне нужно что бы сервер работал со всеми клиентами и отправлял пакеты всем клиентам

    Клиент1 >> Сервер

    Сервер >> Клиент2, Клиент3, Клиент16….

    Для этого нужно сделать Массив Ип адресов ну или список, но немогу понять как???

    как сделать список?

     

    в ответ на: TCP более одного подключения #3118

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Код много раз редактировался. Прошу на многие нелепости не обращать внимание.

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)