Efficient network server design examples, written in C [closed] - c

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.
Improve this question
I am interested in learning how to write extremely efficient network server software and I don't mind getting my hands dirty with pointers, sockets and threading. I'm talking a server being able to handle thousands of concurrent connections. There is not much processing for each client, but a little.
Do you know of any code examples for really efficient network servers?
Optionally points for small, well documented code that is cross-platform as well.

You'll find a lot of good references and discussion about building highly scalable network servers on Dan Kegel's The C10K problem page.

Have a look at nginx, lighttpd and varnish for some popular high performance http servers.
BTW, I am currently working on combining edge-triggered epoll with multithreading (plus user-level swapcontext-style threads/fibers) - see http://svn.cmeerw.net/src/nginetd/trunk/ for some work-in-progress code (although this one is written in C++).

This may not be exactly what you are looking for, but I briefly recall looking at Space Tyrant a few years back and thinking it sounded cool.
http://librenix.com/?inode=6240
Hope it helps!

Read this
http://www.evanmiller.org/lxr/http/source/

an ldap-server handles lots of transactions per second
http://de.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

ACE is a wise choice.

Related

What is a good embedded TLS library? (Cyassl vs Polarssl vs Matrixssl) [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.
Improve this question
I have looked around for good SSL/TLS libraries that support TLS 1.2
I also want to use this library on an embedded platform so it should be small, easy, secure and free. It should be a c/c++ library.
So far i have come across Cyassl, Polarssl Matrixssl a lot so i think that one of these should be a good choice (Openssl is way too big).
Now i would like to know why people use one over the other.
Thanks
Ok.. Just for starters they all do the same. All three can run on embedded platforms. The difference is where their focus is.
From my personal experience:
PolarSSL has loads of documentation, an understandable API, examples, and gives you the ability to actually delve into the code and understand what is happening. In my experience this is a great plus in case you need to debug a specific issue. They only provide Makefile / CMake / MSVC project files, so the task to include it in your embedded environment is yours.
Cyassl's code is harder to understand and tweak. But they have more pre-made Makefiles for specific development platforms. Depending on your environment this might weigh in (for me it rarely does). In a number of comparisons I did as a subcontractor, they are pricier than PolarSSL though.
Pick MatrixSSL if you don't have budget constraints ;) Definitely the priciest of all and I found no specific reasons to actually use it though in comparison to the alternatives..
With the whole NSA / PRISM thing around: If you want something specifically built in the US, then Cyassl is the best choice. If you want something non-US, PolarSSL is the only sane choice.
So if by free you mean: I'm going to use it in an Open Source project, then price does not matter. The verdict from the community: PolarSSL has good adoption in OpenVPN, Cyassl in MySQL.

Public 3270 server [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
I know it's not exactly the right place for such a question, but I've seen similar questions to this here, and I don't know any other place where I could ask this, so sorry in advance.
Do you know where I could find a public 3270 server ? I'm working on a telnet emulator and I need one of these servers to test it.
Thanks for your help !
The biggest issue you will face, is not the TELNET/TN3270 part itself, but rather interpreting the 3270 data stream. Anyway, here are some options for you:
efglobe.com provides a public access z/OS system for personal use only. Ask them
on their forum about the kind of testing you intend to perform, to see whether they are
okay with it.
With MVS Turnkey, you can install MVS 3.8J (for which IBM apparently does not
claim copyright) under Hercules emulation. This dates to 1981, so likely lacks newer
protocol innovations since then, but could help you get the basics of the 3270 protocol
right. (MVS 3.8J lacks a TCP/IP stack, so it doesn't directly support TN3270, but
Hercules accepts TN3270 connections and makes them appear as a physical 3270 to MVS.)
IBM will sell you a mainframe emulator running latest IBM mainframe operating
systems on x86 hardware. It will cost you several thousand dollars a year though.
Many institutions used to offer public TN3270 access to library catalogues, but as most libraries have moved off the mainframe, most or all of those seem to have disappeared. In any case, using someone else's system for testing without their knowledge/permission could be ethically and/or legally questionable. You'll still find various organizations have non-public 3270 systems exposed to the Internet, but you won't get past the login screen, and the same comment about legality/ethics applies.

What open source C projects are worth studying for learning good design? [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.
Improve this question
What small open source projects in C are interesting for learning good design?
The project should be:
Not too large (like the linux kernel)
Well documented
Perhaps still under active development
I've just started learning C, and while the language itself is not too difficult, i'm struggling how to design larger applications, so i thought checking out other open source projects would be a good starting point.
Thanks!
Redis (nosql db) is:
under active development
a manageable size
portable and robust
has no external dependancies
very well written, understandable code
In my opinion, good examples of moderately sized projects written in C are:
GNU Scientific Library (besides the source code, don't miss their design document)
Kazlib
Git
Posix threads are a perfect example of good C design
I like gnucash: http://www.gnucash.org/
No too large like Linux kernel, but still big I think.
You can start learning from small and well structured applications like http://abygaelle.guillaume-fr.net/trac/gemmes
It all depends what kind of projects you are interested in. And what aspect of it (specific algorithms, UI, networking, etc, etc...)
Head over to freshmeat, sourceforge or ohloh and browse the projects for your area of interest.
Alternatively if you want to look at projects that were chosen for a particular reason google summer of code might be interesting for you - even though these rarely include full projects.
EDIT:
Also alternatively, you might take something like linux kernel, but instead of trying to understand everything try to
get the big picture
then concentrate on one tiny piece of it and inspect how the code changed over time (and for what reasons - it should be quite well documented)

Looking for poorly optimized code [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
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.
Closed 8 years ago.
Improve this question
I posted this on daniweb, but have revised my thoughts on the matter.
Basically my 'Integrated Software Systems' class midterm is to take some code (either you wrote or someone else's) and optimize it.
I thought to myself why not use this opportunity to enrich the open source community, I know it's really going to only be a function or so, but if more people from the course were interested maybe it would make some progress for some projects.
So does anyone know of any functions or small chunks of code (nothing really large), that would be somewhat easy to stub out and just run independently of the rest of the code, and just work on optimizing it, especially pieces that need to run fast, that are in an open source project?
I'll definitely post this on my blog and refer people to this question for people wanting ideas on functions to work on from my course.
Frankly I've been tired of just doing work that is academia only and it really isn't helping anyone except learning theoretical stuff, I would rather put it to good use and help others.
ATLAS - might be hard to improve, but if you do, big kudos
UBLAS - may be able to improve some common expression patterns
sympy - python code, some routines are slow. developers would definitely appreciate help.
Probably sympy would have greatest payoff in terms of improvement. Atlas would be nearly impossible to improve in my opinion.
you could also check out projects links on oonumerics.org, but if you do choose project, make sure it is still active. the projects are grouped by their fields so you have a lot to choose from.
You can download the code for this travelling salesman solver and optimize it: http://www.gebweb.net/optimap/
How about a nice little game of Boggle?
There's probably ways to optimize string comparisons, loops, search algorithms, caches.

open source text to speech library [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
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.
Closed 8 years ago.
Improve this question
Does any one know of a good text to speech library. It needs to be open source and provide C API?
PS: I've already done a search, but I'd like recommendations from people who have actually used these APIs
Festival is an open source text-to-speech system.
Stanford uses it for their Natural Language Processing class, and they have up-to-date instructions about installation on this cs224s homework page. Installation on Mac OS X requires a couple patches, which they've wrapped into a handy install script.
There are alternate voices you can use which sound noticeably better than the stock ones. You can find information on these voices in this forum post:
How to setup more realistic voices in Festival. Those instructions are for Ubuntu, but the voices work with any Festival installation.
you can go for Festival worked nice for me.
I have used flite in an embedded server. It has a small footprint and comes with a single voice
eSpeak is another lightweight TTS. More robotty than Festival.
Hey what about MARY?
It looks so awesome to me which one should we push further for open source enterprise computer or androids or whatever? We need to strenghten efforts by shifting all open source resources to the best/most promising we have so far.
Anyone experiences with MARY TTS? Or does it have a flaw (because noone mentioned it before)?
More links:
http://www.babelfish.org/tts-free.htm.
https://www.cereproc.com/en/support/live_demo
http://www.digitalfuturesoft.com/dfttssdk.php (also provides ARM version, like MARY + Festival)

Resources