我正在开发一个需要在 Internet 服务器上运行的程序(一个供多个跨平台程序使用的后端组件)。我熟悉要采取的安全预防措施(例如,防止缓冲区溢出和 SQL 注入攻击),但以前从未编写过服务器程序,或任何将在这种规模上使用的程序。
该程序需要能够同时为成百上千的客户提供服务。这些协议旨在提高处理速度并最大限度地减少必须交换的数据量,并且服务器端将用 C 语言编写。Windows 和 Linux 版本都将使用相同的代码。
问题:
- 程序应该如何处理通信——多个线程,一个线程依次处理所有套接字,或者为每这么多传入连接(或每个连接)生成一个新进程?
- 我是否需要担心诸如内存碎片之类的事情,因为这个程序一次需要运行几个月?
- 对于此类编程,有哪些经验丰富的桌面和移动系统跨平台程序开发人员可能不知道其他设计问题?
请不要建议使用其他语言。那个决定已经做出了,因为我不能自由地说。