したがって、次のコードを使用して、ネットワークストリームを介して「Packet」クラスを送信しようとしています。
IFormatter formatter = new BinaryFormatter();
NetworkStream stream = client.GetStream();
formatter.Serialize(stream, packet);
stream.Flush();
stream.Close();
client.Close();
このクラスの使用:
[Serializable]
public class Packet
{
public string header;
public string content;
public int size = 0;
public Packet(string header, string content)
{
this.header = header;
this.content = content;
size = Encoding.ASCII.GetByteCount(header) + Encoding.ASCII.GetByteCount(content);
}
}
しかし、反対側で読んでいると、次のエラーが発生します。
'System.Runtime.Serialization.SerializationException: Unable to find assembly 'Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.'
これは私の読書コードです:
NetworkStream ns = client.GetStream();
IFormatter formatter = new BinaryFormatter();
Packet p = (Packet)formatter.Deserialize(ns);
MessageBox.Show(p.header);
return p;
なぜこれが起こっているのか考えていますか?
編集:
サーバー側のパケットクラス:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Server
{
public class Packet
{
public string header;
public string content;
public int size = 0;
public Packet(string header, string content)
{
this.header = header;
this.content = content;
size = Encoding.ASCII.GetByteCount(header) + Encoding.ASCII.GetByteCount(content);
}
}
}