1

TCP/IP シミュレーションを実装するために、レイヤーごとにパケットを作成します。

omn​​et send 関数は、定義を使用しcMessageてサブクラス化したときにオブジェクトの送信のみをサポートするため、データを失うことなくゲートを介してそのパケットを送信する方法を見つけることができません。cMessage.msg

たとえば、追加destAddressしたいアプリケーション層の場合、次のpacketLengthように作成しました。

message AppPacket
{
   int pktLength;
   int destAddress;
}

今、それを実装するために omnet に.cc,クラスを作成しました:.h

class AppPacket : public cMessage { ... }

必要なすべてのデータを含む新しいデータを取得した後AppPacket、それを下位層 (トランスポート層) に送信したいのですが、send 関数はcMessageオブジェクトのみを送信するため、送信できません。

私に何ができる?メッセージの要点は、ネットワーク パケットの実装を支援することだと思いました。

4

1 に答える 1

1

AppPacket の .cc および .h ファイルが自動的に生成されます。send 関数が取る型については正しいですが、クラスが cMessage オブジェクトを継承しているため、AppPacket も cMessage であることに注意してください。tcpApp からカスタム メッセージを送信するサンプル コードを見てください。

CustomMsg *msg = new CustomMsg("data");
msg->setByteLength(numBytes);
msg->setExpectedReplyLength(expectedReplyBytes);
msg->setServerClose(serverClose);
msg->setContent("message-specific-content");

socket.send(msg);
于 2011-07-13T11:35:56.213 に答える