그래서 나는 다음과 같은 코드를 사용하여 네트워크 스트림을 통해 '패킷'클래스를 보내려고 오전 :는 NetworkStream을 통해 클래스를 보내기
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);
}
}
}
예외를 throw하는 행은 무엇입니까? "클라이언트"를 초기화하는 전체 코드를 게시 할 수 있습니까? –
'패킷 p = (패킷) 포매터.Deserialize (ns);' 오류가 발생하는 곳입니다. –
클라이언트와 서버 측 응용 프로그램에서 Packet 클래스 (유형)를 어떻게 공유하고 있습니까? 그것은 자체 어셈블리의 일부입니까? –