プログラミング」カテゴリーアーカイブ

C#,ソケット通信

ちょっと躓いたので覚え書き
C#でのサーバサイドのソケット通信


tcpListener = new TcpListener(IPAddress.Any, port);
tcpListener.Start();
TcpClient client = tcpListener.AcceptTcpClient();

// buffStream = new BufferedStream( client.GetStream() );   // ダメ
streamReader = new StreamReader(client.GetStream());
streamWriter = new StreamWriter(client.GetStream());

string receiveStr = streamReader.ReadLine();  // 受信

最初,NetworkStreamはバッファを持たないというのでBufferedStreamで包んでからStreamReader,Writerに渡したところ,2回送らないとStreamReader.ReadLine()が動かないようになった.
よくよく調べるとStreamReader自体がバッファを持ってるみたいで,BufferedStreamのバッファと重複して動作がおかしくなったみたい.

http://msdn.microsoft.com/ja-jp/library/yhfzs7at.aspx
このコンストラクターは、UTF8Encoding へのエンコーディングを初期化し、stream パラメーターを使用して BaseStream プロパティを初期化し、内部バッファー サイズを 1,024 バイトに初期化します。

Androidエミュレータとavast

最近,フランスパンに生ハムとピクルスをはさむと,非常においしいことを発見した.

覚え書き
Androidエミュレータでのソケット通信時,avastさんが受信を止めてしまう.
avastさんを殺すなり,なんなりすればうまく受信できる.

なかなか原因に気づかないで2時間くらい潰してしまった.(´・ω・`)

粒子砲

粒子法もどきをやってみました.

粒子法は流体シミュレーションの方法の一つで,流体の部分流を粒子に見立てる手法です.
他にCGでよく使われる流体シミュレーションの手法には波動方程式から液面の動きを求める方法などがありますが,この方法は連続した液面しか求めることができず水しぶきなどの非連続な流体のシミュレーションはできません.

波動方程式からのシミュレーション

粒子法は非連続な流体の計算を行えるため,波しぶきなどの派手な流体の動きもシミュレーションすることができますが,粒子同士が影響しあうため普通に実装すると計算量が大きくなってしまいます.
今回作成したプログラムでは粒子数は数百個程度ですが,愚直に実装したので数FPS程度しかでませんでした.
多分,容器を大きくして粒子数を増やせばもっと水しぶきっぽくなると思うのですが高速化が面倒なのでとりあえずこれだけで.
低粘度.mpg
高粘度.mpg

あと,ちょっとパラメータを変更して爆発エフェクトも作って見ました.

gifアニメ

IS03でwordpress for androidを使う

AndroidでWordpressの公式アプリ(WordPress for Android)が出てたので早速インストールしてみたのですが,実行してみると「自分で解説したWordPressブログを~」というボタンが表示されない!
どうやらIS03固有のバグらしく,レイアウトの関係でボタンが画面外に切れてしまっている模様です.

どうやってもボタンが押せないためhttp://android.svn.wordpress.org/からソースを持ってきてベッドでだらだらしながらビルドしてみました.「レイアウトをいじればいけるかな~」と思っていたのですが,なんの修正もせずにビルドしただけでボタンが見えるようになってしまいました.
バグは既に修正されているけれど,Androidストアに上げる前のようですね.

しばらくすればAndroidストアの方も更新されるとは思いますが,すぐにIS03で使いたい!という人は試してみてはどうでしょうか.

 → 

 

操作画面