   Develop on linux or windows?
  Hello,i've worked on a sever written in C++ and WinSock. This server game run on Windows 2003 server, but windows 2003 server wastes more resources than linux.. So my question is:  what is the best way to develop a high speed game server? Thanks a lot for your replyes! and sorry for my bad english.   
Quote:Original post by Tano_ITAThis server game run on Windows 2003 server, but windows 2003 server wastes more resources than linux..Define "wastes more resources"?Are you using UDP or TCP? How are you doing your network handling? Blocking sockets? Non-blocking sockets? Multi-threaded blocking sockets? IO Completion Ports?And what sort of load are you expecting?   ;Quote:Original post by Tano_ITAwhat is the best way to develop a high speed game server?Make it run on both Windows and Linux, so the user can run it on the infrastructure that they want.   ;Quote:Original post by Evil SteveQuote:Original post by Tano_ITAThis server game run on Windows 2003 server, but windows 2003 server wastes more resources than linux..Define "wastes more resources"?Are you using UDP or TCP? How are you doing your network handling? Blocking sockets? Non-blocking sockets? Multi-threaded blocking sockets? IO Completion Ports?And what sort of load are you expecting?Ok, i'm using TCP protocol with IOCP on a Windows 2003 Server. Non-blocking sockets. The question is: which advantages can i have using Windows? And which advantages can i have using Linux?I need the best performace for my game server, and i need to know which is the best way to do that. So can you post some articles here?Thanks a lot.   ;  Nobody can tell you if Windows is better than Linux for a server -- at least not without more information. They both have their pros and cons, and in many cases it is a good idea to support both, especially if your server will be distributed to your end users. With that said, if you have little or no experience with Linux you will probably find that you will be much less productive, at least in the beginning. Oh and using IOCP is a really bad idea if you want your server to be portable. The most portable solution for concurrent processing of network events is probably the select() call, provided by both BSD Sockets (Linux/*NIX) and Winsock. However, it doesn't scale as well as the native OS concurrency facilities -- IOCP and epoll on Windows and Linux, respectively.This essentially leaves you with two options: going the portable but less scalable wWhile IDEs and other luxuries are not reserved exclusively for Windows, many hardcore Linux folks simply refuse to use them (using select), or implementing some kind of abstraction layer that will allow you switch between IOCP and for example epoll. The latter is likely to be difficult as the APIs differ greatly. A simpler approach that will probably save you a lot of work would be to use the Boost.Asio framework, which as the name suggests is part of the excellent Boost project (www.boost.org). Apart from the asynchronous I/O API, boost also provides several other portable libraries that could save you a lot of work implementing and debugging low-level features.Note that select() performs well enough in most cases. Don't bother with the much more complicated approaches unless you really think you need it.   ;  Mmm, ok thanks for your reply. Now i will try to study Boost Asio. So i will try to use Linux/Windows and see where i can catch the best performance for my game server. Thanks a Lot! =).   