0

サーバーがシリアル化されたオブジェクトをクライアントに送信するc#のUDPクライアントサーバーアプリケーションがあります。サーバー側で、オブジェクトは逆シリアル化されます。私の質問は、オブジェクトのフィールドまたはデータ メンバーにアクセスするにはどうすればよいかということです。提案や助けをいただければ幸いです。

ありがとうヴァニ

これは、オブジェクトを送信するサーバー コードです。

namespace UDP_Client
{
[Serializable]
class SendObject
{
    public int a;
    public int b;
    public int c;
    public SendObject()
    {
        a = 0;
        b = 0;
        c = 0;
    }

}
class ClientSocket
{
    static void Main(string[] args)
    {

        SendObject obj= new SendObject();
        obj.a = 100;
        obj.b = 200;
        obj.c = 300;
        MemoryStream memorystream = new MemoryStream();
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(memorystream,obj);
        Send(obj.ToString());


    }
    static void Send(string Message)
    {
        Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        IPAddress broadcast = IPAddress.Parse("127.0.0.1");
        byte[] sendbuffer = Encoding.ASCII.GetBytes(Message);
        IPEndPoint ep = new IPEndPoint(broadcast, 10000);
        s.SendTo(sendbuffer, ep);
        s.Close();

    }
}

}

これは、サーバーからのオブジェクトを受け取るクライアントです。UdpClient リスナー = 新しい UdpClient(listenPort); IPEndPoint groupEP = 新しい IPEndPoint(IPAddress.Any, listenPort);

                byte[] bytes = listener.Receive(ref groupEP);

                MemoryStream stream = new MemoryStream();
                BinaryFormatter formatter = new BinaryFormatter();
                stream.Seek(0, SeekOrigin.Begin);
                Object obj = (Object)formatter.Deserialize(stream);
                int val1 = obj.a;//This is what i want to do.
4

0 に答える 0