私は1024バイトのチャンクにファイルを分割する必要があるUDP protcol実装のコードを書いています。次に、各パケットのチェックサムを計算し、シーケンス番号を付けてヘッダ情報として追加し、パケットを受信者に送信します。私はファイルを塊にしてチェックサムを計算することを知っています。しかし、ヘッダー情報とデータパケットを連結するには、私はmemcatを使用する必要がありますか?誰も私にどのようにCでそれを行うことができます示唆することはできますか?C言語のUDPに基づいたソケットプログラミング
-1
A
答えて
0
ファイルから1024バイトのファイルデータのチャンクを読み込むときは、若干大きなバッファ/アレイ(たとえば、char[1024+4+4]
、つまり1032バイト)にロードします。次に、あなたのバッファに余分な8バイトのスペースがあり、バッファをsend()する前にシーケンス番号とチェックサムを書き込むことができます。
1024バイトのデータの後にシーケンス番号とチェックサムを書き込むか、またはデータのfread()
をバッファの開始後8バイトのメモリ位置に書き込んでから、シーケンス番号とチェックサムを先頭に書き込むことができますバッファ(すなわち、ちょうどロードされたデータが始まる前のスペースに)。どちらの方法も、(送信者と受信者がレイアウトに同意する限り)うまく動作しますが、私はもう少し考えるのが簡単です。
関連する問題
- 1. UDPソケットプログラミングで異なる言語のクライアントとサーバー
- 2. UDPクライアント用のWindows Cソケットプログラミング
- 3. asp.net web.apiの言語に基づくコンテンツネゴシエーション
- 4. 言語選択に基づくNSISライセンスファイル
- 5. Webページコンテンツに基づく言語検出
- 6. Androidその他の言語での検索に基づいて
- 7. 条件コードは言語に基づいていますか?
- 8. スピナーの言語テキストをenumに基づいて変更
- 9. NSLocalizedString、アプリケーションの設定に基づいて言語を変更
- 10. ブラウザ言語に基づいてホームページ(ルート)のみリダイレクト
- 11. 言語に基づいて文化を取得する
- 12. 異なるスレッド(C言語)からのUDPメッセージの送信
- 13. C言語の基本関数
- 14. リンクリストの基本メモリ(C言語)
- 15. C言語の言語(llvm用)のための良いASTデザイン
- 16. Swiftのデバイスの言語に基づく条件付きコード
- 17. 言語に基づく雷のコンポーネント(カスタムラベル)の翻訳方法
- 18. CでのUDPソケットプログラミング、recvfrom()の呼び出し後にprintfが動作しない?
- 19. SharePoint - ブラウザの言語設定に基づいてサイトの言語を変更します。
- 20. Androidデバイスのロケールは言語設定のみに基づいていますか?
- 21. ログイン後、ブラウザの言語に基づいて特定のページにリダイレクト
- 22. Inno Setupで言語に基づく条件付きインストール
- 23. ドメインに基づいて別の言語にデフォルト設定する方法
- 24. ソケットプログラミング - TCPの基礎
- 25. Android - プログラムではない言語に基づいて戻るボタンを変更する(英語とアラビア語)
- 26. 言語設定に基づいてウェブサイトのバージョンを変更する
- 27. 記事のタグを言語に基づいて表示しますか?
- 28. SSRSレポートの言語に基づいてFONTを設定する方法は?
- 29. 複数のLUISダイアログ、言語テキストに基づいて切り替え
- 30. 言語設定に基づいてユーザーに電子メールを送信する
あなたはもう少し情報を与えることができますか?今まで何をしていたのか?あなたのコードを置く方が良いでしょう。 – MaMadLord
'sendmsg'を使ってヘッダとパケットデータを別々のバッファから集めて、それをコピーしないようにすることができます。 –