- 1 名前:じぇいそん [04/06/03 14:00]
- ネットワークプログラミング相談室ではいろいろな言語の質問が混ざっているようなの
で、 Java 用にスレを立ててみることにしました。 Java によるTCP/IPソケットプログラミング、 ネットワークサーバーの構築、RMI 、JINI 、 分散コンピューティングなどについての技や プログラミングついてみんなで話し合いましょう!! 関連スレ: ネットワークプログラミング相談室 Port9 pc5.2ch.net/test/read.cgi/tech/1080658835/
- 477 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 06:26:51 ]
- >>476
PrintWriterは環境依存 ⇒ ウソ
- 478 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 10:24:31 ]
- >>477
あれ〜と思ってチェックしてきたら、PrintStreamと混同してました。 スレ汚しすまん
- 479 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 21:26:17 ]
- BufferedReaderのreadlnを使えたら便利なんですけど、
プロンプトを待つときなんかは改行コードがついてないので結局readで1文字ずつ読むしかないんですかねぇ?
- 480 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 08:04:24 ]
- コンソールの話だとすると、環境によっては改行するまで読み出せないかもね。
- 481 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:14:56 ]
- ○×クイズ。×は理由もどうぞ。
1.スーパークラスを拡張してスモールクラスを宣言することができる。 2.クラスに関連づけられているメソッドをインスタンスメソッドという。 3.クラス内に変数を宣言してフィールドとすることができます。 4.例外を送出するにはthrows文を使います。 5.コンストラクタの戻り値は、そのクラスのインスタンスです。 6.java.langパッケージは自動的に取り込まれるので、java.lang.reflectパッケージも自動的に取り込まれる。 7.スレッドを一時停止するにはstop()メソッドを呼び出します。 8.抽象クラスのオブジェクトを作成することはできない。 9.Privateメンバには、クラスの外からアクセスすることができます。 10.引数を持つコンストラクタを作成することもできます。 11.コンストラクタの名前はクラスの名前と同じです。 12.複数のスレッドが共有するフィールドなどを処理する際は、メソッドにsynchronizedを指定します。 13.例外を送出する可能性のあるメソッドにはthrowをつけます。 14.‘A’はStringクラスのインスタンスです。 15.インターフェースのフィールドは定数となる。 16.インターフェースのメソッドは、処理を定義することができない実装メソッドとなる。 17.コンストラクタは、オブジェクトを生成するときに呼び出されます。 18.クラス内に一定の処理をまとめてメソッドとして定義することができます。 19.オブジェクトに関連付けられているフィールドをクラス変数という。 20.スーパークラスのprotectedメンバには、サブクラスからアクセスできる。 21.Publicメンバには、クラスの外からアクセスできる。 22.スーパークラスと同じメソッド名・引数の型・数をもつメソッドをサブクラスで定義して、オーバーロードすることができます。 23.メソッドの呼び出し元は、戻り値を受け取ることができます。 24.クラスに関連づけられているフィールドをインスタンス変数という。 25.クラスは、フィールドとメソッドをもつことができる
- 482 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:26:10 ]
- ○×を正反対にして回答しようかと思ったけど止めた。×の理由が面倒だ。
ってかスモールクラスってなんだよww
- 483 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:33:42 ]
- >>482
吹いたwwwwwwwwww ごめん俺もスモールクラスが理解できん
- 484 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:52:06 ]
- ひねくれた回答を考えてみる実験
1.○ $ cat *.java public class スーパークラス{} public class スモールクラス extends スーパークラス { public static void main(String[] args){System.out.println("Hello");}} $ javac *.java $ java スモールクラス Hello 2.× 設計上関連付いてても、必ずしもインスタンスメソッドじゃなくても 3.× フィールド宣言がクラス変数になるのであって、その逆じゃない 9.○ リフレクションで出来る 11.× クラスの単純名でなければならず、FQCNは使用できない 12.× synchronized文でもvolatileでも 15.× コンパイル時定数でないフィールドをインタフェースに宣言することもできる interface Foo { double foo = Math.random(); } 17.× newインストラクションでオブジェクトを生成した後コンストラクタを呼ばすにpopインストラクションで捨てることができる気がする 23.× 例外を投げるかもしんないし ・・・いまいち微妙
- 485 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:26:06 ]
- Javaの仕様に詳しくないやつの作った甘い質問だな。
- 486 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:10:10 ]
- ですます調とである調が混ざってるので減点
25ってinitializerがあるから×?
- 487 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:45:31 ]
- > 10(日) 10:10:10
別に initializer があるにしても、フィールドとメソッドをもつことができることに 変わりはないと思う。 他の問題を含めて、Java でなく日本語の問題になっている部分がある点で、 あまりいい問題じゃないね。
- 488 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:03:19 ]
- 21. Javaは大文字小文字を区別する。つまりPublicという名前のメンバのアクセス指定による。
- 489 名前:デフォルトの名無しさん [2008/02/12(火) 07:06:55 ]
- 今、Javaのnioを使ったServerSocketChannelをselect()で待つサーバーに対して、
C言語で書いたクライアントを接続しようとしてるんですけど。 C言語のconnect()がエラーを返してしまうんです。 これって、JavaがBIG_ENDIAN、C言語がLITTLE_ENDIANで動いてるせいなんですか? 一応、connect()する際のsockaddr_in構造体はport番号をhtonsで ネットワークバイトオーダに変換はしてるんですが...。
- 490 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:42:37 ]
- 関係ない。
telnetとかでそのポートにつながるか調べてみたら?
- 491 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:49:59 ]
- >>489
エンディアンが気になるなら、変えてみて試せばいいのに
- 492 名前:489 [2008/02/12(火) 16:52:25 ]
- 解決しました。
Cのgethostbyname()の結果がエンディアンの関係でバグってたのが原因でした。 ちなみに、 PowerBook G4(BIG_ENDIAN) --> iMac Intel(LITTLE_ENDIAN)が失敗して、 PowerBook G4(BIG_ENDIAN) --> Power Mac G5(BIG_ENDIAN)が成功してました。 Javaのnioや内部でのバイトオーダー変換に原因があると思ってデバッグしてた自分は一体...。
- 493 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:09:28 ]
- gethostbynameの結果がバグってるとは、返ってくるものが間違っていると言うこと?
- 494 名前:デフォルトの名無しさん [2008/02/28(木) 17:57:53 ]
- 少しわからないことがあるので質問させてもらいます。
今現在java.net.URL()を使ってHTTP通信を行っています。 そこで送信元ポートを指定して、通信を行いたいのですがどのようにすればいいのかがわかりません。 java.net系のリファレンスを見てもよくわかりませんでした。 初歩的な質問かもしれませんがよろしくお願いします。 これは、今のネットワークがあるポートからしかリクエストが飛ばないので、 送信元ポートを指定しなければならないためです。
- 495 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:03:37 ]
- >>494
URLでは無理 そういう特殊な使い方は想定されてない java.net.Socketを使って自分でHTTPプロトコルを喋れば可能
- 496 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:10:41 ]
- URLにcreatorなかったっけ
- 497 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 20:20:23 ]
- >>494
URLクラスをそのまま利用したいのなら>>496のいうように 送信元ポートを指定して通信するように実装したURLConnectionのサブクラスを返す URLStreamHandlerのファクトリを作ってURL#setURLStreamHandlerFactoryで設定する。
- 498 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 20:42:45 ]
- URLStreamHandler クラスを継承して
メソッド protected abstract URLConnection openConnection(URL u) throws IOException をオーバーライドして 送信元ポートを指定して通信するように実装した URLConnection のサブクラスを返せば良いのでしょうか
- 499 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 20:51:52 ]
- そうです
- 500 名前:494 mailto:sage [2008/03/03(月) 11:52:47 ]
- 遅くなりましたが>>495-499ありがとうございました。
がんばってみようと思います。
- 501 名前:そのとおり [2008/09/05(金) 13:19:52 ]
- そのとおり
- 502 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 14:09:16 ]
- URL url = somthing;
conn = url.openConnection(); とかある場合, conn.getInputStream() の戻りで返ってくる メソッドの振る舞いをカスタマイズしたいんですけど 何か方法ないですか?
- 503 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:48:51 ]
- > conn.getInputStream() の戻りで返ってくる
> メソッドの振る舞いをカスタマイズしたいんですけど メソッドはメソッドを返せない。 getInputStream()で返ってくるInputStreamオブジェクトの振る舞いを変えたいって意味? どういうカスタマイズをしたいかによるけれど、 getInputStream()が返すInputStreamのメソッドの動作を変えたいのなら、 必要なメソッドをオーバーライドしたFilterInputStreamクラスのサブクラスを作成して、 InputStreamオブジェクトをそのクラスでラップしてやるのがお手軽かも。
- 504 名前:デフォルトの名無しさん [2008/10/22(水) 14:13:51 ]
- 今イーサリアルのようなすべてのポートとそこを通るパケットを監視できるようなシステムを作りたいのだけど、
どうしたらイーサリアルみたいなことできるの?あれやり方ぜんぜんわからないんだけど windowsファイアーウォールが関係してる?
- 505 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:43:26 ]
- Java だけじゃ無理だろ?
JNI 使ってドライバ直接叩く気力があれば別だが... Unix 系だと BPF とかだけど, TCP/IP スタックとは 全く別のドライバ実装になってるもん Windows でも事情は似たようなもんだと思うぞ
- 506 名前:デフォルトの名無しさん [2008/10/22(水) 15:08:31 ]
- >>505
それは504への・・・でいいのかな? そうだとしてれす やっぱ無理なのか・・・ドライバを監視してるイメージなのかな。あれは。 そっかー。 じゃああるポートをあるポートに結びつけるだけのプロキシをつくりたいの だけど、あ、これならいけそうだ。 でもさ、いちいちプロ棋士のポートをアプリとルータ側で指定しなくちゃならなくなるよね。 何かできない? ルータ5900ポート → 5900プロ棋士5900 → アプリ5900ポート こんな風にはできないよね? プロ棋士でパケットを監視するの。プロ棋士実行してないときは ルータからアプリに直接いくの。
- 507 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:39:38 ]
- >>504
Windows環境で書くと、まず、winpcapを入れる。 winpcapインストールするとき、スタートアップ時にnpfサービスを自動起動するか 聞かれるので、yesにしておく。 このnpfサービスが生きていれば、packet.dll経由でアクセスして、キャプチャできる。 npfが生きてない場合、管理者権限で、java.exe(javaw.exe)を起動しないといけない。 XPならいいけど、Vistaで面倒なことになる。 あとはjpcap使ってJavaから使う。 もっと細かいことしたければ、packet.dllに直アクセスだけど、JNIよりJNAの方が楽。
- 508 名前:デフォルトの名無しさん [2008/10/23(木) 12:29:47 ]
- ヨドバシ.com(www.yodobashi.com)が重くて困っています。
どなたか、原因を探っていただけないでしょうか。 よろしくお願いします。 gimpo.2ch.net/test/read.cgi/kaden/1222787235/l50
- 509 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:31:42 ]
- プログラミングに関する質問にしてください
- 510 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:38:12 ]
- >>504
ほいなー。 netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html
- 511 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 16:44:13 ]
- Struts と Hibernate が原因で重くなってるって?
- 512 名前:ともふみ mailto:tomo_deep2@yahoo.co.jp [2008/11/03(月) 11:14:08 ]
- こんにちは、知史といいます。
あなたの書き込みしたものを拝見させていただきました。 私はハッキングのことについて4か月前からいろいろと考え始めました。 すると、この書き込みを来て是非ハッキングについて詳しく教えていただきたいなと 思いメールをさせていただきました。 よろしければご返事をいただきたいのですが、よろしくお願いします。 小村 知史(コムラ トモフミ)
- 513 名前:デフォルトの名無しさん [2008/12/16(火) 07:51:13 ]
- >>401-512
オヤスミ… <⌒/ヽ-、___ /<_/____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄
- 514 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 17:31:12 ]
- www.cosmicbreak.jp/home
このネトゲはクライアントがjavaとOpenGL、データベースがpostgleSQLで動いてるらしい。 javaって意外と速く動くんだね
- 515 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:42:22 ]
- スルー推奨
- 516 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 21:11:43 ]
- おまえを
|

|