我有一个使用TCP套接字与客户端通信的服务器。
我想将一个对象从一个客户端(Sender)发送到服务器,后者将这个对象发送到另一个客户机(Receiver )。
对象包含不同类型的字段,如下所示
Class Test {
public string key;
public int id;
public string message;
public Test ()
{
// constructor code
}
}
我的问题是如何将对象转换为字节数组,当在Receiver中接收这个字节数组时,如何进行相反
我有一个位图,我使用BinaryFormatter和MemoryStream将其转换为字节,然后将字节发送到TCP服务器,当我尝试将其转换回BitMap时,我得到了这个错误System.Runtime.Serialization.SerializationException: End of Stream encountered before parsing was completed.我尝试将位图转换为字节,然后在客户端将字节转换为位图,只是为了检查错误是否由于转换而导致,但一切都正常。所以我认为问题是服务器是以块的形式接收数组的字节,而不是一个大的数组,所以我的问题是如何检查字节数组是否完
我已经序列化了一些对象,以便将它们转换为TCP数据包的字节数组。当我将对象从服务器程序发送到客户端程序时,没有问题,而且工作正常。但是,尽管服务器和客户端之间的代码是相同的,但当我试图从客户机向服务器发送对象时,会得到一个无效的标头。
下面是我正在序列化的对象:
public static byte[] serialize(Hand c) throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = n