Всем здраствуйте!
Для онлайн шутера надо:
Как можно реализовать передачу данных между сервером и клиентом в сети интернет по образу UDP?
Тоесть отправил и забыл, а не ждать ответа как TCP.
Есть ли в ТСР возможность не ждать(не просить) подтвержения доствки?
ПС: "проблемы NAT" - начало в конце этой страницы.
send(socket, data, size, 0);
послал и не ждёш :-)
>Есть ли в ТСР возможность не ждать(не просить) подтвержения доствки?
Никто и не просит :) TCP просто реализовывает 100% доставку всех пакетов получателю :)
Лучше взять какую-то готовую библиотеку RakNet
Ockonal
Вот в том то и дело что ТСР сам все это регулирует. Делит пакеты, собирает в буфер. А мне бы как с UDP.
radiantor
Не понимаю проблемы :) Пишите надстройку над UDP под себя :) Или берите библиотеку готовую. Та, что я дал очень хорошая.
Ockonal
UDP пакеты ведь в интернете не ходят. А стороннюю библиотеку не охота юзать.
radiantor
Кто сказал, что не ходят? :) Я писал программу, помнится, передавало в любую точку сети глобальной (интернет которая). Да и, как я помню, pnp-сервера, синхронизации времени через udp.
А иногда проще взять левую, доработанную библиотеку, в этом нет ничего плохого :)
Ockonal
Хм... сколько слышал, всегда говорили что UDP в интрнет не ходят. Что там их просто фильтруют, поэтому я даже пробовать не стал. Надо тогда попробовать или еще пособирать инфы.
radiantor
Меньше других слушать нужно :)
Ну бред же. UDP/TCP, какая разница :) Суть одна, реализация разная.
UDP at wikipedia
>UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм) — это транспортный протокол для передачи данных в сетях IP
>В отличие от TCP, UDP не гарантирует доставку пакета, поэтому аббревиатуру иногда расшифровывают как Unreliable Datagram Protocol (протокол ненадёжных датаграмм). Это позволяет ему гораздо быстрее и эффективнее доставлять данные для приложений, которым требуется большая пропускная способность линий связи, либо требуется малое время доставки данных.
Где тут что сказано о том бреде, что вы везде слышали :)
radiantor
Вы категорически моя не понима :)
UDP/TCP - протоколы для передачи информации в IP-сетях.
Ockonal
TCP\UDP это надстройки над протоколом IP. Просто я никогда не использовал чисто IP протокол. Все теперь понял. Раз это надстройки, то полюбому все работает на протоколе IP.
UDP протокол не позволяет получить ответ компьютеру находящемуся за NAT без вмешательства в настройки NAT.
А TCP позволяет. Вот в чем грабли.
>UDP протокол не позволяет получить ответ компьютеру находящемуся за NAT без вмешательства в настройки NAT.
Всмысле? Компьютер за NAT, например своего своего прова, не сможет получать ответы на свои UDP пакеты?
Megabyte-Ceercop
Ничего подобного, сколько времени истратил на это.
NAT не пропускает оба вида пакетов, но в UDP обойти его в разы легче, например, используя STUN-протокол.
NAT не пропускает пакеты извне, только если соединение не было инициализировано изнутри.
Тема в архиве.