C♯相談室 Part7

このエントリーをはてなブックマークに追加
912デフォルトの名無しさん:02/09/16 21:37
System.Net.Sockets.NetworkStreamとか
System.Net.Sockets.Socketとかの送受信がbyte[]しかないんですが、
byte[]にパケット詰め込む場合ってC#ではどんな感じにするのが
推奨されてるんですかね。

俺は今までC++ではmemcpyでBYTEの配列にintやchar等必要な
データをくっつけてパケットを作ってたんですが、
int->byte[]やstring->byte[]にうまいことコンバート(シリアライズ?)
するクラスとか関数があれば教えてください。
>>912
BinaryReader、BinaryWriterでNetworkStreamをラップしてやるのがよろしいかと。
914912:02/09/16 22:31
>>913
ギニャー!
ありがとうございました。
(このスレsageで進行してたんすね。あげちゃってすんません)

これってやっぱuintのデータ入れる場合とかは
htonsとかhtonlとかは自分でやんなきゃいけないんすかねー。
まあそれはそれで自分で作るか。
>>914
IPAdress.HostToNetworkOrder
IPAddress.NetworkToHostOrder
しかし、センスが無いのはネがMSだからか。
>>915
すっげー同意!
>>915
ということでセンスのある名前を考えてあげてください
期待しましょ。ヽ(´ー`)ノ

http://discuss.develop.com/archives/wa.exe?A2=ind0209c&L=dotnet-clr&D=0&T=0&P=3346

> we plan on posting a message announcing availability of the Beta for
> download this week.
919915:02/09/17 00:00
>>917
センスがあったら、漏れもこんなとこうろついてないよ。
でも、いくらなんでもIPAddressクラスで、しかもあの名前ってのは無いと思うよ。
static xxx System.Endian.ToBig(xxx);
static xxx System.Endian.ToLittle(xxx);
とかだったらどうだろ? Endianがクラス名。
あるいは、System.ByteOrderクラスでstatic xxx ReverseOrder(xxx);とか。
なんか.NETのニュースが多いと思ったら、向こうでVSLive!やってるのか。

http://www.vslive.com/2002/or/agenda.asp
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_005/cs2_005_03.html
これみてたんだけど。
List 5-6とList 5-5ってどこが違うの?
class Test と struct Test
文章にも書いてある
923デフォルトの名無しさん:02/09/18 20:40
>911
自分はVS起動時に、IDEが表示されるのですが、
「ヘルプ更新を実行中」とダイアログが出た後に、
"問題が発生したため・・・"の例のダイアログがでて終了します。
一度、OS(Win2k)をクリーンインストールしてからやり直しましたが
同現象でした。念のために自宅のPCにてインストールを試みましたが一緒でした。
C#Standardはうまくいくんですが、VS.net(Enterprise)は駄目です。
仕事ではVB厨なので趣味なんですが。。。。。
924923:02/09/18 20:41
あげてしまいました。。。。。
MSのサポート受ければ?
インスコは無料でしょ?
927デフォルトの名無しさん:02/09/19 11:58
>>926

これって 一部のオフィスアプリでイベントがシンクできない問題解決されてるのかな?
>>927
ぜひ試して報告してくれ。
2chツール゙を作ろうかと思うのですが2chへの認証ってどうするんですか?
Helpで通信云々を探しているですがイマイチ使用方法がわかりません。
ヒントお願いいたします。
こんなのも。System Requirementsが・・・。

http://www.microsoft.com/downloads/release.asp?ReleaseID=42932
.NET界のSourceForgeとなるか?

http://www.gotdotnet.com/community/workspaces/
933デフォルトの名無しさん:02/09/19 16:36
webアプリケーションで質問です。
aspx内に書いたjavascriptで取得した値を
本体の方に送ることはできますか?
>>933
URLのパラメータにくっつけるとか、HIDDEN項目置いて値をセットするとか。
>>934
なるほど、ありがとうございます!
hiddenってpostでしたね
>>929
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconaccessinginternet.htm
>>936
感謝します。通信関係のプログラミングは初挑戦なもので
頑張ってみます。
939デフォルトの名無しさん:02/09/20 08:11
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

ANN: .NET Framework 1.1 beta available
http://discuss.develop.com/archives/wa.exe?A2=ind0209c&L=dotnet-clr&T=0&F=&S=&P=14881
>>939
登録して、メール待ちですな。
一応・・・

.NET Framework 1.1 Beta Overview
http://msdn.microsoft.com/netframework/productinfo/next/overview.asp
そろそろ新スレ、どなたかおながいします。

>>941
ざっと見たところ、1.1 で追加、更新されるのは

・ASP.NET Mobile Controls (具体的にどの user agent 対応なのかな?)
・コードアクセスセキュリティ周り (漏れはこのへん良く理解して無い、ソマソ)
・ODBC と Oracle への Data Provier
・.NET Compact Framework
・IPv6 サポート

こんなところかな。
943名無しさん♯:02/09/20 11:28
944デフォルトの名無しさん:02/09/20 11:36
ひょっとしてVS.NETも新バージョンに買い換えなきゃ駄目なん?(;´Д`)
>944
SDK自体はロハだから問題なかろう。
ロハって何?
>>946
辞書弾け
>>946

>>948
ダータですな。
>>944
買い換えっていうか、ちゃんと登録してれば数千円でVS.NETのバージョンアップできるよ。
MSDNに入ってればタダ。
どういうわけか気づいたらVSの60日体験版が3枚くらいあるんだけど・・
これって売れない?よね・・
>>951
ヤフオクで売ってる奴いたなぁ。。。
2000円ぐらいの入札が付いてるの見たときワラタ
逆シリアル化について疑問があります。

// Container の逆シリアル化コンストラクタ
public Container( SerializationInfo info, StreamingContext context )
{
 MessageBox.Show( "Begin deserializing Container" );

 child = (Child)info.GetValue( "child", typeof(Child) ); // child はフィールド

 MessageBox.Show( "End deserializing Container" );

 MessageBox.Show( child.Data ); // 値がおかしい
}

// Child の逆シリアル化コンストラクタ
public Child( SerializationInfo info, StreamingContext context )
{
 MessageBox.Show( "Deserializie Child" );
}

上記のようなコードで逆シリアル化を行ったとき、
Begin Container -> Child -> End Container
の順番で呼ばれると思ったら
Begin Container -> End Container -> Child でした。

Container のコンストラクタ内で child にアクセスすると未初期化の Child が入っていて、
Container のコンストラクタを抜けた後に Child のコンストラクタが呼ばれているようです。

いまいち動作に納得がいかないのですが、これに関するドキュメントなどご存知でしたら教えてください。
>>953
こんなところしか見つからないねえ・・・。

http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconcustomserialization.asp
ここにもちょっとだけ載ってた。

http://www.codeguru.com/columns/DotNet/serialization.html
956953:02/09/23 10:24
レスありがとうございます。

内側から外側に向かうと言うのはあくまで継承時の問題で、
コンテナよりもその所有してるオブジェクトのほうが早く復元されるとは限らないって事でしょうか。
常に IDeserializationCallback を使用したほうがよさそうですね。
2chに出てたサンプルをコピペしてコンパイラ実行し始めてから
インデントが全角空白だったことに気付き,置換してたら
コンパイル通っちゃった。びっくりした。
ビット演算子の優先順位が比較演算子より低いのがどうしても納得いかねぇ・・・
Cならともかく、C#じゃこうすることのメリットがまったくねぇじゃねぇかよ・・・

if ( (var&EnumType.Value)!=0 ) Hoge;
を書く度に思う俺

愚痴スマソ
>>957
c = 1+1;
もOKだと思う。
Console.WriteLine("{0,2}", "ああ"); −> ”あ”
Console.WriteLine("{0,2}", "12"); −> ”12”

というような文字列操作ってないでしょうか?
>>960
全角を 2 バイト、半角を 1 バイトとして扱いたいっての?
そういうクラスを自分で作ってToStringをオーバーライドすればできるけど