C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: javaでのクライアント処理について
(過去ログ 107 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 4 記事 (1 - 4 表示)] <<
0
>>
■63939
/ inTopicNo.1)
javaでのクライアント処理について
▼
■
□投稿者/ bananaman
(1回)-(2012/10/30(Tue) 17:20:58)
分類:[Java]
サーバーからデータを受け取るところを作りたいのですが,そのデータが3バイトのintegerとしてリトルエンディアンフォーマットで連結されているようなのですがどのように書けばよいのでしょうか?
引用返信
編集キー/
編集
■63942
/ inTopicNo.2)
Re[1]: javaでのクライアント処理について
▲
▼
■
□投稿者/ Azulean
(55回)-(2012/10/30(Tue) 22:24:41)
Java はあまり触っていないので適切な助言はできないかと思いますが、ほかの人が回答するために必要そうな情報としてお聞きします。
> サーバーからデータを受け取るところを作りたいのですが,
> そのデータが3バイトのintegerとしてリトルエンディアンフォーマットで連結されているようなのですが
> どのように書けばよいのでしょうか?
すでに受け取っているのであれば、どういった型にどのような形で入っているか、そして希望する出力を明示してください。
そうすれば、それを入力に希望する出力への変換のアドバイスをもらえると思いますよ。
// 〇〇型の配列があるとか。そういったものがまったく書かれていないので。
// あとは、自分で解決しようとして調べたことも書いてあると、なおよいでしょう。
引用返信
編集キー/
編集
■63944
/ inTopicNo.3)
Re[2]: javaでのクライアント処理について
▲
▼
■
□投稿者/ bananaman
(2回)-(2012/10/31(Wed) 00:59:20)
■
No63942
(Azulean さん) に返信
> Java はあまり触っていないので適切な助言はできないかと思いますが、ほかの人が回答するために必要そうな情報としてお聞きします。
> すでに受け取っているのであれば、どういった型にどのような形で入っているか、そして希望する出力を明示してください。
> そうすれば、それを入力に希望する出力への変換のアドバイスをもらえると思いますよ。
>
> // 〇〇型の配列があるとか。そういったものがまったく書かれていないので。
> // あとは、自分で解決しようとして調べたことも書いてあると、なおよいでしょう。
int型の配列で8つのデータが格納されています。
8つのデータを上から
NO.1
〜
NO.8
まで表示したいのですが
引用返信
編集キー/
編集
■63948
/ inTopicNo.4)
Re[3]: javaでのクライアント処理について
▲
▼
■
□投稿者/ howling
(22回)-(2012/10/31(Wed) 11:50:45)
bananamanさん
こんにちわ。
Azuleanさん同様、javaは知識が浅いので、ハズしていたらすみません(で済むのか!?)
そもそもリトル/ビッグエンディアンがどういう物かは理解しているつもりでも、
使ったこともないのですが、例によってググってみました。
(ググって出た物は証明にはならないので、本当は本の方が良いと思います)
チラ、と調べてみると、ByteBufferクラスというのが用意されているようです。
//どんな仕様かの説明
http://docs.oracle.com/javase/jp/6/api/java/nio/ByteBuffer.html
//使っている例
http://goromemo.blog75.fc2.com/blog-entry-8.html
使っている例から、
リトルエンディアンの値をsetして、
getする際に開始のバイト数を入力して、
そこからgetで指定した型のバイト数だけ取得するようです。
で、bananamanさんの場合、3バイトと書かれていますので、
3バイトだけ読み込んで何かのint型にリトルエンディアンで書き込み、
そのint型(4バイト)をByteBufferにセットする(をfor文か何かで8回やる)
→(ByteBuffer).order(ByteOrder.LITTLE_ENDIAN);を指定
→4バイトずつ8回getする(ByteBuffer).getInt(4 * (0〜7)); //0〜7はfor文か何かで
というのが、少しだけ楽なやり方かなぁと…。
(もっと良いやり方があるかもしれないです)
そうか…3バイトずつデータが来るなんて、UTF-8くらいなものだとばかり…orz
好きなジャンルですけどね、こういうのは!(ぉ
役に立たなかったらすみません。ではでは。
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-