ネットワーク上で符号付きlong(32ビット整数)を転送したい場合、私は何をしますか?私が長い間、署名されたものとして送信すると、リモートマシンがどのように署名された数字を表すのか(潜在的に)わからないでしょうか?では私は何をしますか?なぜ署名付きロング用のソケットntolがないのですか?
答えて
ntohl()
はバイトオーダーで動作するので、記号については気にしません。気になるのは、いくつのビットがあるかです。タイトルの質問に答える。
「私は何をしますか?」という質問に答えるには?あなたが質問をしているというだけでなく、署名されているかどうかを知らない以外にも、この番号があなたの特定のリモートこの問題についてもっと知識があるかもしれません。
OKだから私はちょうど私がそれを署名したものとしてマークすると、もう片方で私は戻って変換するのに必要なことをやるでしょう。 –
コンパイラが主張している場合は、 'htonl'を実行する前に' unit32_t'にキャストし、 'ntohl'を介して処理するときに署名するようにcasバックすることができます。 –
2つのシステムで負の整数(たとえば2の補数、符号の大きさ)の表現が異なる場合は、数値を文字列として送信し、それらを受信者のintに解析します。効率的ではありませんが、大量の数値を送信しない限り、それほど重要ではありません。送信する番号が多数ある場合は、何らかの圧縮形式を使用できます。
また、負の数値について独自のネットワーク表現を定義し、独自のntohsl
とhtonsl
を記述します。
どちらのアプローチでも、各システムには、他の表現では表現できない1つの番号があります。この数字を受け取ったときの適切な行動方針を決定する必要があります。
POSIXによると、整数型intN_tは2の補数でなければなりません。 'ntohl'関数はPOSIXの一部です。 –
@DietrichEpp:ISO Cではまた、2つの補数と、最も負の値を有効にする(トラップではない)必要があります。 –
整数を文字列に変換して戻すことは、非常に非効率的な方法のように聞こえます。 –
ntohl
とhtonl
を使用して、uint32_t
とint32_t
の間でキャストまたは暗黙的に変換してください。
- 1. Googleの市場請求サンプルが署名付きリリース版でビルドできないのはなぜですか?
- 2. 強力な署名付きのNAudio.dll
- 3. PlaceAutoCompleteが署名付きapkで動作していない
- 4. なぜ署名鍵が高価なのですか?
- 5. 署名付きのクッキーとは何ですか?また、そのクッキーはなぜ有用ですか?
- 6. 署名付きアセンブリは、署名付きアセンブリのみで使用できますか?
- 7. Netbeansで署名付きJarを作成できない
- 8. 私のC++アセンブリに署名がないのはなぜですか?
- 9. 無効な署名付きリクエスト
- 10. 署名付きURLがFlowplayer
- 11. SSO SAMLの署名付きXML署名検証(sha256を使用)
- 12. ソケットで接続できないのはなぜですか?
- 13. 署名者に署名するDocusign署名付き文書
- 14. 名前付き仮想ホストが動作しないのはなぜですか?
- 15. 名前付き範囲が機能しないのはなぜですか?
- 16. Android専用の署名付き鍵
- 17. FB.getLoginStatusまたはFB.loginがアクセストークンと署名付きリクエストを返すのはなぜですか?
- 18. oAuth署名の最後に "%26"が必要なのはなぜですか?
- 19. Pythonで署名されていないlong型の署名付きコードを再入力
- 20. 署名付きアプリケーションがデバイスにキーストアなしでインストールされています
- 21. rawソケットが作成されないのはなぜですか?
- 22. デリゲートの署名が一致しないときにエラーなし
- 23. 自己署名付き証明書付きのAndroidでSSLソケットを作成する
- 24. 署名付きGnus reply
- 25. 自己署名入りのSSL証明書を認識できないのはなぜですか?
- 26. コロナコードの署名が機能しない
- 27. 強く命名されたアセンブリは、署名されていないアセンブリを使用できないのはなぜですか?
- 28. NSDictionaryの説明 - 引用符付きのキー名はなぜですか?
- 29. 名前のないパラメータはなぜ有用なのですか?
- 30. Antで署名付きリリースと署名なしリリースの両方を構築する
それをどのように解釈するか教えてください。 –
[Signed Integer Network and Host Conversion]の複製が可能です(http://stackoverflow.com/questions/4878781/signed-integer-network-and-host-conversion) – outis