ローカルのシリアルポートを複数のネットワーク接続クライアントに接続するだけのサーバーアプリケーションを作成しています。私はプログラムのための機器が限られたメモリを持つルータであるため、サーバアプリケーションのためにlinuxとCを使用しています。同じ情報を複数のスレッド/ソケットに送りますか?
私は、接続ごとにfork()プロセスを使用して、複数のクライアントがシリアルポートにデータを接続して送信するためのすべての設定を行っています。
私の問題は、シリアルポートに入ってくるデータを複数の(大量の)クライアント接続に送り出すことにあります。私の問題は、各アクティブなソケットがすべての着信データを取得し、一度だけ取得する方法を設計することにあります。どんな助け?
複数のネットワーククライアントが1つの共通シリアルインターフェイスに読み書きしているとしますか?それはそれのように聞こえるものですが、それはまた奇妙なパターンです。 – purpleamy
それはまさにそれです。もしそれが奇妙ではなかったなら、それはもっと簡単だろう。悲しいことにシリアルインネットワークアウトは重要な方向です。必要に応じて各スレッドがシリアルポートに直接書き込むので、もう一方の方が簡単でした。 – scoutjoe
あなたのデザインや要件が正しいかどうかわかりません。シリアルポートには注意が必要です。いくつかのスレッドの代わりに 'poll'や' select'のような多重化システムコールを使うかもしれません。 –