TCP上にアプリケーションレイヤネットワークプロトコルを記述(実装)したいと思います。それをやり始める方法を教えていただけますか? オンラインチュートリアルも役に立ちます 私はsm実装のチュートリアルも必要です。私はこれに新しいと時間が少ない:( RFCは、ルールについてもっとですアプリケーションレイヤネットワークプロトコルの書き方(実装)
答えて
最も良い解決策は、トレント、ftp、httpのような現在のソリューションを監視することです。それはあなたにいくつかのknowlegdeを与える必要があります。あなたの想像力で
これは、(元々)文字列が付いていない、混乱しているか偽のステートメントを持たない非常に単純なプロトコルです(初心者のために) (多くの面で)豊富な、非線形です。
更新:私はリンクを元のRFC 821に置きましたが、これは現在廃止されています。最新の(そして有効な)SMTP用のRFCよりも読みやすくなっています。
私はCでこれをしないことをお勧めします。これについてもっと簡単な方法があります。 www.twistedmatrix.comを見て、Python用のWebフレームワークを見てみましょう。 Cを書くことができれば、確かにPythonは汗をかくことはできません。また、通常はC言語のような低レベル言語でのネットワークプログラミングに関連する不快感のほとんどを処理します。
独自のプロトコルの設計は簡単なことではありません。しかし、それをTCP/IPの上に構築すると、より簡単になります。 RFCはプロトコルに関するルールであり、正しいと指摘しました。しかし、これは一般的にプロトコルとは何か、何かを行う方法のルールと合意のセットです。ここの美しさは、あなた自身のルールを指定することです。考慮する必要のあるものには、送信するデータのタイプ、各ピースの長さ、状態(存在する場合)などがあります。例えば、HTTPは、要求または結果を定義するヘッダーと、送信されるデータを定義するペイロード(フォーム・ポストまたはhtmlページの可能性がある)を持つステートレス・プロトコルです。
したがって、送受信するデータ、データ型で定義できるデータの長さ、または期待されるデータの量を定義する必要があります。プロトコルに状態がある場合(つまり、何か他のことができる前にまず何かを送受信しなければならない場合)、その状態を定義する必要があります。それを超えて、それは簡単なネットワークプログラミング(アプリケーションでのデータの送受信)です。
例えば単純なプロトコルはこれを持っている可能性があり:
最初の2Command 1 Byte
Length 4 Bytes
Data Length Bytes
は、もう一方の端はすべてを読むことができるように必要なデータに関するメタデータが含まれているあなたのヘッダーを定義します。最後は実際のデータです。コマンドは必要ではありませんが、受け取ったバイトに応じてデータの特定のアクションを他の側で実行できるようにすることができます。データの長さは重要です。なぜなら、他のエンドは、すべてのデータがいつ読み込まれるのかを知っていなければならないからです。
この回答は本当に私が言っていることを固めるのに役立ちます。私はこれが助けて欲しい! https://stackoverflow.com/a/11658296/2498017
- 1. 書き込みトライ実装
- 2. Django URL書き換えエンジンの実装
- 3. レイアウトの実装後にpng/jpgを書き出す方法
- 4. JavaプログラムでSQLiteの先書きログを実装する方法
- 5. PHPでURL書き換えを実装する方法
- 6. ASP.NetでURL書き換えを実装する方法は?
- 7. Javaファイルを書き込むログクラスを実装する方法
- 8. 辞書の実装インターフェイス
- 9. Javascript Python辞書の実装
- 10. 文書化前の実装
- 11. ネットワークプロトコル(仕様書)を書く(実装する)方法
- 12. デフォルトのswgger-code-genサービスの実装を上書きする方法は?
- 13. バックアップオプション付きツリーの実装方法は?
- 14. リンクリストの実装を書くときのCポインタの問題
- 15. ruby1.8でregexp(?<!...)を書き換える方法(wpautop関数の再実装)
- 16. 非トランザクションファイルシステムでのアトミックファイル書き込みの実装
- 17. Pythonのデュアルサイド辞書のベスト実装
- 18. ツリー書き込み可能クラスの実装
- 19. Cでの辞書/ LUT実装
- 20. 辞書のifステートメントでregexを実装する方法
- 21. 英語の辞書をJavaで実装する方法は?
- 22. iPhoneアプリで手書き認識機能を実装する方法は?
- 23. IdentityServer4 - 偽装の実装方法
- 24. WIF 4.5で自動証明書ローテーションを実装する方法
- 25. group_by_owners辞書を実装する
- 26. HTML文書にJQueryを実装する
- 27. コンテキスト付きリポジトリモジュールの実装
- 28. シングルサインオン - 実装方法
- 29. IDropSourceNotify - 実装方法
- 30. 孤立したものの計装テストの書き方