■プロフィール

クリエイトウェーブスタッフ

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

■最近の記事
■カテゴリー
■twitter

■QRコード

QR

■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブロとも申請フォーム
■twitter_follow

■ブログ内検索

■RSSフィード
■リンク
XMLソケットサーバーのメッセージ送信
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 - ジャンル:コンピュータ

カテゴリー:.NET | TM(0) | CM(0)
次のページ

FC2Ad