2009-05-07 3 views
7

Ich bin interessiert zu lernen, wie man extrem effiziente Netzwerk-Server-Software schreiben und ich habe nichts dagegen, meine Hände schmutzig mit Zeigern, Sockets und Threading. Ich spreche von einem Server, der Tausende von gleichzeitigen Verbindungen bewältigen kann. Es gibt nicht viel Verarbeitung für jeden Kunden, aber ein wenig.Effeffient Network Server Design Beispiele, geschrieben in C

Kennen Sie Codebeispiele für wirklich effiziente Netzwerkserver?

Optional Punkte für kleinen, gut dokumentierten Code, der auch plattformübergreifend ist.

Antwort

1

Werfen Sie einen Blick auf nginx, lighttpd und varnish für einige beliebte High Performance http-Server.

BTW, ich bin derzeit auf der Kombination flankengetriggerter epoll mit Multithreading (plus Benutzerebene swapcontext Stil Fäden/Fasern) - siehe http://svn.cmeerw.net/src/nginetd/trunk/ für einige Arbeit-in-progress-Code (obwohl dieser in C++ geschrieben ist).

1

Dies ist vielleicht nicht genau das, wonach Sie suchen, aber ich erinnere mich kurz daran, Space Tyrant vor ein paar Jahren gesehen zu haben und dachte, es klang cool.

http://librenix.com/?inode=6240

Hoffe, es hilft!

5

Sie werden viele gute Referenzen und Diskussion über den Aufbau hoch skalierbare Netzwerk-Server auf Dan Kegels The C10K problem Seite.

+0

Eine Liste von Open-Source-Serverimplementierungen, die die verschiedenen beschriebenen Ansätze verwenden, finden Sie am unteren Rand der Seite. –

+0

Es ist eine gute Seite, war schon mal dort. Aber ich denke immer noch, dass der Beispielteil der Seite fehlt, meistens in flankengetriggerten Lösungen. Daher die Frage :) – Andrioid