投稿日:2007-05-31 Thu
C#によるXMLSocketサーバー側が、繋がっているFlashクライアント側メッセージを送信するにはネットワークストリームオブジェクトに、メッセージ文字列をByte型配列に変換して書き込めばいいのかなとやってみてたのですが、string Mess = "おくるメッセージ文字列";
byte[] sendBytes = System.Text.Encoding.UTF8.GetBytes(Mess);
stream.Write(sendBytes, 0, sendBytes.Length);
みたいな感じ・・・・
でも、うまくいかない。
試しにFlashではなく、本についていたC#のサンプルプログラムでは、うまくいく。
どうもC#どうしだと問題ないようです・・・・・
それにサーバー側で、メッセージを新たに作ると、うまくいかないんだけど、Flashが送ってきたメッセージを、そのまんま送ると成功する。謎だ・・・
なぜだろうと思って、Flash8のヘルプを見ていたら
「ゼロ (0) バイトで終了する XML メッセージがサーバーから・・」みたいな事が書いてある。
ん? ゼロ (0) バイトで終了
そういえば、昔どっかでそんな事を読んだか、聞いたかする気がするなあって思い出して調べて書き直しました。
string Mess = "おくるメッセージ文字列";
byte[] sendBytes = System.Text.Encoding.UTF8.GetBytes(Mess);
stream.Write(sendBytes, 0, sendBytes.Length);
stream.WriteByte(0);
stream.Flush();
のように2行追加。
やってみると、おお! うまくいった。
ふう~、この2行の解決の為に半日ぐらい使ってしまった・・・
まあ、よくある事?ですけどね。
テーマ:.NET Framework - ジャンル:コンピュータ
△ PAGE UP