Open Source & Cross Platform Multiplayer/Networking Libraries? [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 8 years ago.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Improve this question
While raknet seems fairly interesting and really appealing from a feature-point of view, its licensing terms seem to be possibly troublesome for GPL'ed projects that may be leveraged commercially, something which is explicitly forbidden by the terms of the creative commons license.
While there's also opentnl, it doesn't seem to be as actively maintained anymore nowadays, in fact downloading the latest stable tarball even fails during compilation because it doesn't seem to support gcc >= 3.0 (?)
Of course, there's still also enet, but this one cannot be really compared to the abstract features that are supported by raknet/opentnl.
So, apart from any non-trivial dependencies such as ACE, Boost or Poco, are there any viable alternatives for embedding a fairly compact, well-maintained UDP-networking library?
Thanks

The wiki of Ogre3D provides a list of networking libraries and a short description for them.

Though this answer comes late to the party, I'm using OpenTNL for my game, Bitfighter, and I really like it. I use it on OS X, Windows, and Linux without a hitch. True, it's not maintained by its creator, but when I get the time, I'm going to create a new SourceForge project for it so people have a place to post their patches. It's stable and (fairly) well documented, so I would recommend giving it another look.

I have been looking for something very similar, but to no avail. So, I decided to create my own C++ Networking Library, at the time of this writing it isn't complete, but will be very soon. I will keep you up to date if your interested in trying it out. It's features so far are TCP/UDP, IPv4, IPv6 Async/Sync and multicasting. If there are any other features you have in mind that should be implemented, just let me know :)

Unfortunately network programming tends to be non-trivial.
Said that you would be advised to get aquainted with the network programming facilities from either Boost or ACE, as both are mature libraries that have been successfully employed in many applications.
I would also suggest to read C++ Network Programming: Mastering Complexity Using ACE and Patterns and C++ Network Programming: Systematic Reuse with ACE and Frameworks

Related

I need a library much like Java's GregorianCalendar but in C or C++ [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
While this might not seem exactly like a programming question, non-programmers won't know what I'm talking about. If you can suggest a more appropriate stack* forum, I'll happily ask there, but I think this is my best shot.
libical is a good start, but it doesn't have anywhere near what I need.
I do not want to reinvent tons of calendar math functions if they already exist, and I also do not want to suck in boost or roguewave or anything like that just to do calendaring.
Any suggestions? I've looked and looked and found nothing, but my google-fu isn't supreme.
By rejecting Boost you're rejecting a library that's had not only extensive design review but also probably extensive testing by people who you can guess (hope) have experience with the picky picky details of datetime calculations.
But ok, I can actually understand the desire to avoid Boost if possible.
But you're entering a world where you have even more responsibility than usual to validate the design and implementation.
That said, this library looks like its promising for your purposes: Howard Hinnant's date library on github (see also his pages here for a man page and here for a description of the algorithms used. I have not used it, of course. (If you do take this suggestion, please report back here, so we'll all know about this library's worth.)
I suspect the best answer is going to be Boost's date_time library. Though you should see if your C++ framework has something already first. Always try to match your framework when you can.

Reference for Linux API like MSDN? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Is there any nice to read Linux API reference like the one offered by MSDN or boost? I like the detailed information about the parameters from MSDN and the pre- an post conditions from the boost documentation. But until now I found nothing comparable in the net for Linux.
The man pages are definitely a good start, as others have noted. If you'd like something more formal and rigorous, however, I would recommend reading the POSIX specification. Here is the index of functions in the standard:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html
Looking at what the standard requires, rather than what the current implementations of these functions on Linux happen to do, will also help you write more portable, robust software.
Read first good books like Advanced Linux Programming (you can download it) and Advanced Unix Programming
Be aware that GNU/Linux is by definition less monolithic than Windows (because many contributors are working on it, and) because it is made of many independent programs.
Therefore, there is no well defined Linux API (except for the kernel syscalls; but GNU/Linux is more than the kernel)
Of course, read the man pages, in particular start with the intro(2) man page about syscalls and other man-pages.
Be aware that Linux is nearly implementing (a superset of) the POSIX standard specification from the OpenGroup.
Read also many good documentations from TLDP.
If you are interested by desktop application development, understand first what
X11 is, (beware, X11 is very complex in the details). Then read documentation from freedesktop. Better yet, learn to use a graphical toolkit like Qt or Gtk
And GNU/Linux is made of free software, you can download and study the source code and improve it. You'll very often use some existing free software library, and you may study its source code (and each of them has its own documentation). Part of your work is finding good free software related to your needs. freecode and sourceforge are good resources (and they are many others).
I have this bookmarked.
The Linux man-pages project

Better logging library for C++ [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
In our project now we using log4cxx, but those library don't develope some years, also we have some problems with it.
Could you advise some library for logging in C++.
Library must support multithreade logging, system-log.
Also it'll be good if it support logging via << operator.
Also lib license must be very democracy - like boost, apache etc
Crossplatform support. Must support linux, windows. Better if it support solaris, aix, hp-ux, but it's not necessary.
boost::log is probably the most versatile and well-written logging library I've seen. It's pretty complicated but really genius at the same time. And it does everything you can think of and then some more.
I use the glog library, by google (because I could not install Boost.Log easily). It is both simple to use and powerfull.
We use log4cplus in our company, it provides a complex hierarchical logging system (based on log4j). It seems to have everything you are asking for. It provides many appenders (I personally choose this library for the rolling files linux/windows and linux Syslog).
The library is quite simple to compile and deploy on both linux & windows And do the job no problem so far (about 4 years in production).
Only drawback, the lack of documentation but the code it quite self-explanatory. Good new is you could go to the log4j documentation page to understand how configurators/patterns/etc works ...
Check out pantheios!

As a software developer what is your SNMP suite that easy to integrate into your software [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Well, altough the S of the SNMP stands for Simple, yet, so far I haven't experienced it that way. And now that I am about to deploy my software on around around 180 remote Linux servers and wants to monitor the servers and configure my daemons all from a centralized point.
I simply want you to recommend me the library which you'll confidently describe as "SNMP Made Easy".
I am looking for a suite of software which not standing in the developer's way, easy to work with (install, configure).
Speaking from the NOC perspective, the ideal would be such one which requires no maintenance once installed.
Note: Open Source is mandatory.
I wouldn't describe it as easy, but the easiest I've found (quite a while ago) was pysnmp -- I had to wrap it with a couple of façades to make it somewhat usable by people who weren't deep SNMP experts (and that code I had to leave behind at a previous employer, was never open-sourced, and I couldn't reconstruct it right now but would have to develop again from scratch). However, so many years have passed (with PySNMP in continuous development, now with a PSF grant too) that it may definitely have gotten better (one can hope;-).
Try Net-SNMP . It has BSD licence. If you are open for java snmp4j is the best.
I am still searching for that easy to use suite of SNMP tools/API myself.
I build OA&M and I've tried NET-SNMP, Windows SNMP and lately agentpp (www.agentpp.com).
Personally, I preferred the agentpp.
Good luck to you.
The "S" in SNMP is actually for "simple" not because using it is simple, but rather because the protocol (on the wire) is designed to be simple and easy to implement. And it is. Now... actually implementing it and then using it is where the S completely drops away.

qpThreads documentation [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Is there any documentation on qpThreads? In what way is it different from pthreads?
It looks like qpthread has become a sourceforge project. It hasn't changed in four or five years from the CVS repository and doesn't seem to contain any documentation. Chances are that if you don't have docs on it, then none exist save for the source code and headers of course.
I grabbed the source out of curiosity and it looks like a pretty standard threading implementation that is layered over pthreads. The largest difference is that pthreads is a C-style interface and qpThreads is an OO interface more akin to what you might find in Java. I haven't delved into it very deeply, but you might want to look at the interfaces like java.util.Timer and java.util.concurrent. Some of the interfaces look quite similar to what qpThreads offers.
You might want to investigate replacing it with Boost.thread or something more recent. Chances are that you will have better luck maintaining it. It shouldn't be that hard to do depending on how much code you have to deal with.
From a cursory look at google search results, qpThreads seems to be an obscure C++ threading class library. pthreads is a very widely used, POSIX-compliant, multi-platform threading C API.
The most important thing about using libraries is making sure they are actively maintained.
You should use a well known and heavily used library if possible. This way you will also have a vast number of people to ask questions if you have any.
Please see this similar SO question for more details:
Good c++ lib for threading (or use the search box for more).
Found some documentation finally.
Sourceforge qpthreads