• ベストアンサー

ソケット関数について(winsock)

こんばんわ。 winsockのsendtoやsend関数を用いる場合、送信するデータのバッファの型は、char型しか使用できないのでしょうか?整数型(int型の配列)を送信することはできないのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

charは単にbyteサイズの整数を表すもので、文字を表すとは限りません。 # char自体も整数型の一種です。 ここでいうcharは前者の意味であり、必要に応じてキャストしてintなどを送ることが可能です。 この際の注意点としては、intなどcharより大きな型では、 バイトオーダ(byte order)といわれる内部表現の並び順の違いがあります。 IntelのCPUではリトルエンディアンと呼ばれるものになっていますが、サーバなどではビッグエンディアンのものもあります。 一般に言われる「ネットワークバイトオーダ(ネットワーク上で一般的に使われるバイトオーダ)」はビッグエンディアンなので、 もしも他のマシンとの通信等をする場合にはhtonlやhtons等で変換が必要になるかもしれません。

bird0214
質問者

お礼

返答ありがとうございます。 お礼のカキコミが遅くなってしまい、大変申し訳ありません。 ありがとうございました。

関連するQ&A