- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:48:24 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド111【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1200151522/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980あたりで。
- 975 名前:デフォルトの名無しさん [2008/03/01(土) 14:50:50 ]
- 勉強のためにファイル転送のプログラムを作っているのですが、
いまいち上手くいきません。流れとしては、 @(送り手) FileChannel(sourceChannel)でファイルを読み込む A(送り手) SocketChannel(destinationChannel)で相手に送る B(受け手) SocketChannel(sourceChannel)で受け取る C(受け手) FileChannel(destinationChannel)でファイルに書き込む 送り手 while(destinationChannel.isConnected()){ buffer.clear(); if(sourceChannel.read(buffer) < 0) break; buffer.flip(); destinationChannel.write(buffer); } 受け手 while(sourceChannel.isConnected()){ buffer.clear(); if(sourceChannel.read(buffer) < 0) break; buffer.flip(); destinationChannel.write(buffer); } bufferはByteBuffer型になっています。 これを実行すると、送り手はエラーもなく正常に終了しているのですが、受け手で 「java.io.IOException: 既存の接続はリモート ホストに強制的に切断されました。」というエラーが出てきます。 エラーが出た場所 => if(sourceChannel.read(buffer) < 0){ 長文な上にわかりにくい文章かもしれませんが、 なぜこうなるのか教えてもらえないでしょうか?
- 976 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:02:45 ]
- >>975
データの受信自体は問題ないのですか? 単にデータを送るだけだと、送り手側でソケットを閉じると、 受け手側でエラーが出るはずですが… 何らかのプロトコルで「送受信完了」をやり取りする形にすれば 問題のある状態なのかどうか判断できると思います
- 977 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:11:10 ]
- 勉強のためならまずCでやったほうがいいよ
Javaでやっても意味ないよ
- 978 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:27:11 ]
- 質問させてください
String str = "12345"; str += "abcde"; これで連結しようとするとrangeが足りないと出ます すでにあるStringクラスのオブジェクトに文字列を連結するための メジャーな方法などがあれば教えてください
- 979 名前:デフォルトの名無しさん [2008/03/01(土) 15:56:12 ]
- >>976
データの受信自体が出来ないみたいです。 送り手側は一通りプログラムが実行されて終了するのですが、 受け手側は if(sourceChannel.read(buffer) < 0) の部分で処理が止まっているみたいです。 受け手は、送り手が書き込むのを待っている状態になっているんでしょうか? >>977 時間に余裕が出来ればCも勉強しようと思っています。 今は就職活動中であまり時間が無くて、息抜きでやっている状態なので... 助言ありがとうございます。
- 980 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:00:40 ]
- >>978
不可能
- 981 名前:978 mailto:sage [2008/03/01(土) 16:02:28 ]
- 自己解決しました
スレ汚しごめんなさい
- 982 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:44:15 ]
- ServletContextを得るためのgetServletContext()というメソッドがありますが、
APIを見てみるとServletContextはインタフェースなのでオブジェクト化は出来ませんよね。 getServletContext()は、実際にはServletContextではなく、ServletContextを実装するサブクラスを作ってるんでしょうか?
- 983 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:46:00 ]
- ServletContext context = getServletContext();
System.out.println(context.getClass().getName());
- 984 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:13:50 ]
- 次スレたててみる
- 985 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:18:51 ]
- 次スレ
【初心者】Java質問・相談スレッド113【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1204363011/
- 986 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:00:59 ]
- >>985
乙彼Death
- 987 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 21:31:24 ]
- >>975
送り側はちゃんと閉じてる?
- 988 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:22:23 ]
- PHPを学習した後だとJavaの習得は容易ですか?
- 989 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:31:14 ]
- いいえ
- 990 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:38:08 ]
- PHPの知識は役立たないの?
- 991 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:47:56 ]
- javaの勉強はじめました。
ネットワークとかGUIとか使って何か作りたいのですが、 何も思いつかないので、 パケットモニタ(?)(今どんなメッセージで通信されているか)みたいなのを作りたいのですが、 ネットワークに関しては、どの変の勉強すれば早そうでしょうか。 この辺のクラスは古いから使わないほうがいいとか、 この辺使えばすぐじゃないかとか教えていただけると助かるのですが、 助言もらえませんか。 GUIに関しては、本とWebを参考にして手をつけていたら何とかなりそうな気がしているのですが、 ネットワークは難しすぎて…。
- 992 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:16:15 ]
- Java→PHPなら簡単
- 993 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:18:43 ]
- >>991
何をしたいのか本人すら分かってないのに他の人に聞いても分かるはずないよ ネットワークって具体的に何?サーブレットでWebアプリ作るとかじゃ駄目なの?
- 994 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:22:47 ]
- パケットモニタはドライバ組まないと無理だ。
通信なら Socket 使えばいい。
- 995 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:36:45 ]
- >>934
>synchronized付いてるから同時には呼び出されない え?メソッドレベルの排他というのは、一つのメソッドに複数のスレッドが同時に入れないだけで、 アクセスするメソッドが別なら排他されないのでは?やば、今までずっと間違えてきたかも。。。
- 996 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:38:58 ]
- なんかいろいろ勘違いしてるなw
- 997 名前:933, 995 mailto:sage [2008/03/02(日) 03:44:36 ]
- >>934
いやいや、やっぱり同時アクセス可能ですよ。でないとnotifyAll()でwait()を解除してあげられないです。
- 998 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:47:47 ]
- インスタンスメソッドの synchronized 修飾子は synchronized(this){ } でメソッド内全てを囲ったのと等しい。
クラスメソッドの synchronized 修飾子は synchronized(Queue.class){ } と等しい。
- 999 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:51:58 ]
- www.amazon.co.jp/dp/4797337206
- 1000 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:55:06 ]
- 1000 なら Java 死滅確定
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|