私は生のソケットを初めて使っています。私は、rawソケットを使ってrawデータを1つ以上のファイルで送受信するサーバーとクライアントアプリケーションを作成したいと思います。各ファイルは、50バイトの1つ以上のデータセグメントを含み、各データセグメントは指定された区切り文字(すなわち、スペース、キャリッジリターンなど)を含むことができる。私のサーバの仕事はファイルから読み取り、各セグメントを一度に送信することである。各パケットは、MACアドレスのようなイーサネットヘッダのような従来のヘッダ情報のないデータのみを含むべきである(パケットは、パケットの長さおよび/または開始を示すためにパケットの前に何らかの形式のデータを含むことができ、パケットの終わりを示すために)。クライアントアプリケーションは単に ポートを聞いてデータを解析し、生データをファイルに書き込む必要があります。C/C++でサーバクライアントのrawソケットプログラムを書くのに助けてください。
私を案内してください。私は多くのrawソケットプログラムを見つけましたが、どれも明確ではありませんでした。もし誰かが私にしっかりとしたスタートを与えることができれば、それは素晴らしいことだろう。
あなたが何を記述しているのかは分かりません。ポートをリッスンするには、TCPプロトコルが必要です。イーサネットヘッダーなしでデータを送信する場合、ルータはどのようにパケットをルーティングするのかを知っていますか?クライアントとサーバーの間でファイルを転送する場合、rawソケットは必要ありません。これにストリームソケットを使用するだけです。 – rushman
先生、あなたは私のことを知りません。私は間に1台のルータでこれを行うために4〜5のノードを使用したいと思います。しかし、私の第一の目的は、シンプルなサーバーとクライアントを実行させることです。私はちょうどヘッダーにMACアドレスを入れて、パケットを送信しています。だから、受信機は私がどこから来たか知っている..... – Invictus
まあ、私はまだそれを取得していない。たぶんそれは私が混乱している "各パケットは、イーサネットヘッダーなどの従来のヘッダー情報なしでのみデータを含む必要があります"と言うビットです。また、あなたがWindowsを見ているなら、rawソケット上のTCPは動作しません。私はまだこれのためにまったく生のソケットを使用したい理由はまだ分かりません。このようなクライアント/サーバーのものは、古典的なストリームソケットです。たぶんあなたはあなたの答えをもっと明確にすることができたので、本当に何をしようとしているのか分かりますか? – rushman