110,534
社区成员
发帖
与我相关
我的任务
分享
Socket sktlisten = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipa = IPAddress.Parse("0.0.0.0");
IPEndPoint endPoint = new IPEndPoint(ipa, 6666);
sktlisten.Bind(endPoint);
sktlisten.Listen(20);
Socket socket = sktlisten.Accept();
Type type = typeof(MemoryStatus);
int size = Marshal.SizeOf(type);
byte[] b_receivedata = new byte[size];
int len = 0;
while ((len += socket.Receive(b_receivedata, len, b_receivedata.Length - len, 0)) < b_receivedata.Length) ;
IntPtr p = Marshal.AllocHGlobal(size);
Marshal.Copy(b_receivedata, 0, p, size);
MemoryStatus obj = (MemoryStatus)Marshal.PtrToStructure(p, type); //obj 就是转换后得到的结构
Marshal.FreeHGlobal(p);