Есть winsock и нечто очень похожее на него в линуксе, но это всё сишные варианты.
А что есть именно под C++? Многого от библиотеки не надо, достаточно посылки бинарных сообщений переменной длинны без каких-либо гарантий.
Враппер под тот-же winsock хотя бы. У меня есть свой враппер, но может есть какая-то хорошая либа для сети?
enet?
raknet
boost asio
GameNetworkingSockets
TNL
Если ты ожидаешь, что с библиотекой проще работать, чем на голых сокетах, то обломаешься. Они не изолируют тебя от нижнего уровня, ты по прежнему должен разбираться во всех нюансах, плюс к проблемам сети добавляются заморочки от авторов библиотеки. По сути, если ты не можешь написать свою библиотеку, то не сможешь и пользоваться готовыми.
DirectPlay (вроде ещё должно работать)
Raknet
Zab
> Если ты ожидаешь, что с библиотекой проще работать, чем на голых сокетах, то
> обломаешься.
в разы проще.
Aroch
> в разы проще.
Только если у тебя рядом есть автор библиотеки или тот, кто в ее потрохах разбирается не хуже автора. А иначе ты вынужден со всеми глюками, которых неизбежно будет множество, лезть в реализацию и смотреть как там и что. И не факт что это проще, чем свою библиотеку соорудить.
Zab
>boost asio
у меня и так долго компилится, ещё и бууст уже будет перебор
>Если ты ожидаешь, что с библиотекой проще работать, чем на голых сокетах, то обломаешься. Они не изолируют тебя от нижнего уровня, ты по прежнему должен разбираться во всех нюансах, плюс к проблемам сети добавляются заморочки от авторов библиотеки. По сути, если ты не можешь написать свою библиотеку, то не сможешь и пользоваться готовыми.
я ожидаю, что мне не прийдётся год писать свою
Zab
>А иначе ты вынужден со всеми глюками
SOIL простая и рабочая либа, не обновлявшаяся кучу лет, но работает досихпор. мне не пришлось пока лезть в неё.
lookid
enet это сишная либа
Zab
RakNet is no longer available for license
romgerman
GameNetworkingSockets
А чего-нибудь попроще нет? На эту либу и примеров не находится.
refroqus
TNL GPL
Мизраэль
DirectPlay (походу померла)
Zab
> Они не изолируют тебя от нижнего уровня
Пользовал Enet. Изолировало, остался доволен, хотя по началу тоже был свой непортируемый велосипед.
samrrr
> enet это сишная либа
А почему это проблема для С++? Особенно если задача всего-лишь "достаточно посылки бинарных сообщений переменной длинны без каких-либо гарантий".
Чисто для эстетики есть wrapper-ы типа https://github.com/xairy/enet-plus.
Еще для С++ есть POCO - но это монстр типа буста.
> Многого от библиотеки не надо, достаточно посылки бинарных сообщений
OMG, там три функции - socket, bind и sendto. Какие библиотеки?
Zab
> Только если у тебя рядом есть автор библиотеки или тот, кто в ее потрохах
> разбирается не хуже автора.
а примеры которые идут с библиотеками на что?
> А иначе ты вынужден со всеми глюками, которых
> неизбежно будет множество, лезть в реализацию и смотреть как там и что. И не
> факт что это проще, чем свою библиотеку соорудить.
не выдумывай.
samrrr
> RakNet is no longer available for license
ха?
raknet хороша тем, что когда лезешь к ней в потроха, а лазать придется, там никаких особых местных заморочек, все как сделал бы и сам, если бы писал аналогичное.
А буста зря боишься. Его же не обязательно подключать целиком, маленький его кусочек нагрузку на компилятор не дает особо. asio - совсем не тяжелый кусочек. Впрочем, и то, что раньше было тяжелым, на С++ 11-й редакции и позже резко полегчало. Некоторые не полегчавшие старые части буста и не надо уже использовать, лямбду например, в язык встроена более комфортная ее вариация, но с бустовской не совместимая.
samrrr
> я ожидаю, что мне не прийдётся год писать свою
Год ты потратишь так или иначе, если с сетью плотненько не работал до этого. Дофига всего учитывать надо.
Конечно, не на написание софта год нужен, а чтобы большинство возникающих сетевых проблем стали узнаваемыми.
> а примеры которые идут с библиотеками на что?
Чем тебе поможет пример, если оно не работает, надо разбиваться кто виноват и что предпринять. Причин множество, часть из них вообще внешние. Пока не раскопаешь - не поймешь как компенсировать.