2012年10月15日月曜日

チャットを作る予定なので思考メモ

チャットを作る

動作

起動
上から処理していく

自分 相手
SocketのHOSTとPORTを入れる ServerSocketを立ち上げてaccept()を使い待ち
Socketのconnect()を使い要求
->エラー出たら失敗->もう一度
->成功でaccept()を使い待ちで相手のターン
待機
待機 accept()の戻り値をSocketに入れて
そのSocketからgetInetAddress()とgetPortで
アドレスとポートを取得する
待機 新しいSocketを作りconnect()を使い要求
->エラー出たら失敗
->成功相手もメッセージ

待機
別メソッドでaccept()を使いループしてアクセス待ち
DataOutputStreamを使いメッセージを送信

メッセージが届くので別メソッドでaccept()を使いループして常にアクセス待ち
別メソッドにてconnect()で常にアクセス
別メソッドにてconnect()で常にアクセス
メッセージの送受信 メッセージの送受信

終了

汚い流だけれどこんなものかな。

理解が浅いから全然だ


ああ、ミス
設定として最初から自分も相手もアクセス待ちだ

追記('12/11/11):
TCPじゃなくてUDPの方が楽そうだった。。。


2012年10月7日日曜日

JARファイルに画像


JARファイルに画像を埋め込むときに必要なこと

まず、画像の入っているフォルダを右クリック->ビルドパス->ソースフォルダとして使用。

そのあと画像を使う場面
例えばImageIconクラスの変数で
ImageIcon icon = new ImageIcon(getClass().getClassLoader().getResource("画像.jpg"));
と画像のファイル名のみを入れる

これでエクスポートすればよい

2012年10月1日月曜日

JAVAでCacheファイルを作るために


ネットワークを使ったプログラムを作りたいと思い立った。

ダウンロードとかキャッシュファイルの作成とかどうやるんだろう?思い調べてみることに。

参考にさせてもらったサイト様URL
http://634.ayumu-baby.com/javawork_downloader.html

なるほど!
URLクラスにはopenStream()というものがあるんですね!

あとBufferedInputStreamとInputStreamのAPIを見てきました。
http://docs.oracle.com/javase/jp/6/api/java/io/InputStream.html
http://docs.oracle.com/javase/jp/6/api/java/io/BufferedInputStream.html
参考にさせてサイト様で書いてあった通りリジューム機能が付けられそう

とりあえず、作ってみた。
家のネットワークがぼろぼろでダウンロード作業中に接続が切れファイルが壊れてしまった時に、これのリジューム機能が意外と使えて便利でした。

ソース

めんどうだからあとで