用remote object不就行了,简单明了

解决方案 »

  1.   

    remote object怎么用,可否发一段小程序过来
    谢谢!!!
      

  2.   

    也可以直接用TcpClient或者UdpClient来做,你看看System.Net
      

  3.   

    tcpclient不够灵活
    可以用二进制序列化本地对象,然后再远程反序列化回来。
    或者用unsafe代码,这个我没试过
      

  4.   

    用socket啦socket连接和关闭的代码
    socket=new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    IPAddress myIP=IPAddress.Parse("172.16.15.21");
    IPEndPoint EPhost=new IPEndPoint(myIP, 6776);
    socket.Connect(EPhost);socket.Close();如下定义结构:
    [StructLayout(LayoutKind.Sequential, Pack=1)]
    public struct pack_LogOn
    {
    byte byFlag;
    byte bySystemID;
    byte byFlagType;
    byte byReserve;
    ushort uSize;
    byte byDataID;
    ushort uBureauID;
    ushort uFCS; public unsafe byte[] GetBytes()
    {
    byte[] arr = new byte[ sizeof(pack_LogOn) ];
    fixed( byte* parr = arr )
    { *((pack_LogOn*)parr) = this; }
    return arr;
    }
    }
    请注意StructLayout的用法和public unsafe byte[] GetBytes()数据发送代码如下:
    pack_LogOn pack=new pack_LogOn;
    //填入数据
    Byte[] sendBytes = pack.GetBytes();
    socket.Send(sendBytes, sendBytes.Length, SocketFlags.None);
      

  5.   

    我用的是二进制序列化,可是传递对象,很方便,就是有点罗索unsafe代码高效,但总觉得用起来不太正宗
      

  6.   

    以上unsafe代码是推荐的方法。不过适用于一端用C#,而另一端用C++或C的应用。
    如果两端都用的是C#,我觉得二进制序列化还是很好的,罗索只是不熟悉时的感觉而已。