インターネット サーバー (複数のクロスプラットフォーム プログラムで使用されるバックエンド コンポーネント) で実行する必要があるプログラムを開発しています。セキュリティ上の予防措置 (たとえば、バッファ オーバーフローや SQL インジェクション攻撃を防ぐため) についてはよく知っていますが、これまでサーバー プログラムや、この規模で使用されるプログラムを作成したことがありません。
プログラムは、数百または数千のクライアントに同時にサービスを提供できる必要があります。プロトコルは、処理速度と交換する必要のあるデータ量を最小限に抑えるように設計されており、サーバー側は C で記述されます。同じコードから Windows と Linux の両方のバージョンが存在します。
質問:
- プログラムは通信をどのように処理する必要がありますか? 複数のスレッド、すべてのソケットを順番に処理する単一のスレッド、または非常に多くの着信接続ごとに (または接続ごとに) 新しいプロセスを生成しますか?
- このプログラムは一度に数か月実行する必要があるため、メモリの断片化などについて心配する必要がありますか?
- この種のプログラミングに特有の設計上の問題で、デスクトップおよびモバイル システム用のクロスプラットフォーム プログラムの経験豊富な開発者が認識していないものはありますか?
別の言語を使用する提案はありません。その決定はすでに下されています。理由は、私が立ち入る自由がないからです。