用remote object不就行了,简单明了
解决方案 »
- 有关c#的oracle的连接封装问题
- 求解:dataGridView 当编辑单元格,光标离开时修改到数据源
- 对象名 'tb_examResult' 无效
- webservice ConnectionString 属性尚未初始化 求解答
- 出现的线问题,早了半天名查处原因拿错了?
- 点击GRIDVIEW某行就弹出这行详细信息的窗口.
- C#开发计算器键盘的输入操作
- 急~!在线等待~!关于页面上传得问题
- 求成熟的物业商铺管理系统
- 以前做过VC,JAVA, 现在开始学C#,.NET请问各位大虾该从什么开始入手??谢谢 谢谢 谢谢
- 怎样创建SQL数据库
- 请微软专家或版主解答:实现动态载入模块后,如何实现以MDI子窗体方式调用载入模块的窗体?
谢谢!!!
可以用二进制序列化本地对象,然后再远程反序列化回来。
或者用unsafe代码,这个我没试过
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);
如果两端都用的是C#,我觉得二进制序列化还是很好的,罗索只是不熟悉时的感觉而已。