Hi everybody!
A long time ago I wrote a custom program in C++ for Perfect World.
Shortly: can update any clients without using compressions and manage clients on the fly with bundled secure webserver and sqlite database.
Only have two parts: server and the client.
Platform independent source, using GNU.
Server can do a following:
- Recursive scan a specified folder and indexing all files by size and mtime.
- Have webadmin over SSL (optional):
- Stop update, proxy servers
- Maintance mode (means: just a specified users can join into server any others gets a customized-error message)
- User management:
- Custom banning system by hardware fingerprint
- Lightweight code, blocking I/O with thread-pool memory management.
- Safe UP to 1024 concurent TCP connection.
- Uses streams.
- Secured transferring with 1byte-crc calculate.
- D.o.S. / D.D.o.S. / Flood protection.
So it can send client files natively, like any client structure server's folder have userdata directory and any PCK files and so on. It checks for any filesystem change under directory and rehash the index, all client will download a most fresh files, except install only files like userdata.
So just need a clean Perfect World client on the server.
Client can do a following:
- Connect to the server
- Download file indexes
- Check any differnce between server/client files.
- Update / download if needs.
- Launch a crypted tunnel and binding on localhost.
- The game will connect to the client and the client create a tunnel with the server, server can check user.
- Create shortcut to the Desktop
- GUI Interface with bitmap background, looks good.
- 3 buttons, start game (if no update in progress), Forum, Website.
- Actually I using this patcher as installer too it can do.
And so other feature.
I has built in a "all-in-one" built in file.
So the client just a one .exe file, with bundled virtual filesystem.
Server have 2 files, PE binary (*nix) and the config also have builtin vfs and the database file will created after first run.
So It possible to share it, but Of'Corse in limited feature, like a simple real-time patcher.
So it only have a simple webadmin and update server feature with customizable client, without database and the secured tunnel.
If I share it, I have to make a client with external files, like BMPs and the configure file.
I can share only the binary files, because its licensed and closed source by me :)
client .exe file size with UPX 2MB and its cost 5-6MB of RAM.
Server also lightweight, but its hardly depend on concurrent-threads. Measured maximum RAM: 35MB, with 800 concurrent thread and active I/O.
Who wants it?




Reply With Quote



