質問するログイン新規登録

質問編集履歴

3

訂正

2017/06/13 08:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,6 @@
1
1
  今TCP/IPでクライアントとサーバーの通信をしています。
2
2
 
3
3
  クライアントのClassをシリアライズし、サーバーに送りたいのですがやり方がイマイチわかりません。
4
- NetWorkStreamクラスを使用して行うと思うのですが、参考になるサイトをいろいろ見てもできませんでした・・・
5
4
 
6
5
  クライアント側
7
6
  ```C#

2

訂正

2017/06/13 08:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -62,4 +62,6 @@
62
62
  ```
63
63
  そうすると{"アセンブリ 'クライアント, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' が見つかりません。"}と出てきます。
64
64
 
65
- どうすればデシリアライズがうまくいくのでしょうか?
65
+ どうすればデシリアライズがうまくいくのでしょうか?
66
+ またDLL??がどうこうと参考したサイトには記載されていますがどういうことでしょうか?
67
+ 無知で全然わかっておりませんがよろしくお願いいたします。

1

訂正

2017/06/13 08:26

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,6 @@
4
4
  NetWorkStreamクラスを使用して行うと思うのですが、参考になるサイトをいろいろ見てもできませんでした・・・
5
5
 
6
6
  クライアント側
7
- Calss Sampleをサーバーに送信したい場合どのようなコードになるのでしょうか?
8
7
  ```C#
9
8
  Sample sampleData = new Samle();
10
9
 
@@ -12,14 +11,55 @@
12
11
  {
13
12
  TcpClient client = new TcpClient();
14
13
  client.Connect("127.0.0.1", 9000);
14
+ NetworkStream stream = client.GetStream();
15
15
 
16
16
  // BinaryFormatterオブジェクト生成
17
17
  BinaryFormatter formatter = new BinaryFormatter();
18
+ formatter.Serialize(stream, sampleData); }
19
+ ```
20
+ でシリアライズしました。
21
+ 下記がシリアライズ対象のクラスです。(中身が""なのは気にしないでください。)
22
+ ```C#
23
+ [Serializable]
24
+ class Sample
25
+ {
26
+ public string maker = "";
27
+ public string name = "";
28
+ public string bodytype = "";
29
+ public string model = "";
30
+ public string distance = "";
31
+ public string cc = "";
32
+ public string transmission = "";
33
+ public string color = "";
34
+ public string price = "";
35
+ }
36
+ ```
18
37
 
38
+ サーバー側のデシリアライズメソッド(抜粋)
19
- ・・・・・・・
39
+ ```C#
40
+ public void Receive(NetworkStream stream)
41
+ {
42
+ BinaryFormatter formatter = new BinaryFormatter();
43
+ Sample sampleDate = new Sample();
44
+ sampleDate = (Sample)formatter.Deserialize(stream);
20
- }
45
+ }
21
46
  ```
47
+ サーバー側も同じように下記のクラスを作りました。
48
+ ```C#
49
+ [Serializable]
50
+ class Sample
51
+ {
52
+ public string maker = "";
53
+ public string name = "";
54
+ public string bodytype = "";
55
+ public string model = "";
56
+ public string distance = "";
57
+ public string cc = "";
58
+ public string transmission = "";
59
+ public string color = "";
60
+ public string price = "";
61
+ }
62
+ ```
63
+ そうすると{"アセンブリ 'クライアント, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' が見つかりません。"}と出てきます。
22
64
 
23
- 以降がわかりません。
24
-
25
- よろしお願いたます。
65
+ どうすればデシリアライズがうまくいくのでょうか?