在使用Socket通讯时,发现只能发送String?
但希望发送的是Struct类型的,请教高手了
及如何把String转换成Struct?

解决方案 »

  1.   

    告诉你一个很简单的方法:把struct的各个参数都用string表示出来,发送,在网络的另一端接受后new 一个struct,再用接收到的string初始化struct,这样相当于发送了struct.
      

  2.   

    同意楼上.转化为string 更好.或者用webservice啊.可以传自定义类型了.
      

  3.   

    我以前搞Java的时候用过对象流,直接可以发送对象,不知道C#有没有,查了半天文档没发现,找到了告诉你。
      

  4.   

    IntPtr addressOfStructure1 = Marshal.SizeOf(typeof(TYPEATTR));
    TYPEATTR structure2 = ...;
    Marshal.StructureToPtr(structure2, addressOfStructure1, true);
    yourString =  Marshal.PtrToStringAnsi(addressOfStructure1);
      

  5.   

    可以用序列化……或者,自己转换为Xml发过去,那边还原。
      

  6.   

    请高手说一下 C# 里面与 Java 里面的 objectInputStream 和 objectOutputStream相对应的类是什么? 回答了这个问题楼主的问题就很简单了,直接发Struct就行了。也不知道C#里面有没有发送对象的流。
      

  7.   

    用structure好,只要传四字节的IntPtr,接收方用Marshal.PtrToStructure就行了