日期:2014-05-19  浏览次数:20751 次

socket通信和.net remoting实现网络数据通信哪个好些?
我想实现windows应用程序间的数据通信,由于数据最好是DATATABLE、DATASET返回就可以直接使用,所以想把SOCKET(数据格式我都是用的STRING,返回了再变成自己的格式,但是数据量大了,很麻烦,要么   还要用序列化)改为.NET   REMOTING这样会好些,想大家给些建议,谢谢

------解决方案--------------------
如果业务不复杂,可以自己封装,否则还是趁早改,我已经经历过了。
------解决方案--------------------
使用socket效率比较高,但是最大的问题是需要硬编码,传过去的数据包需要按位解析。
使用Remoting比较好,传递的是类对象,不需要双方的协议了,而且基于TCP的Remoting效率也是很高的,.Net Framework帮你完成了序列化和反序列化。从程序可读和可维护性说,还是Remoting吧,但是个人感觉Remoting的事件不是很好用。
------解决方案--------------------
从性能上讲:Socket> Remoting(TCP通道)> WebService。
如果你是Windows进程间通讯的话,WebService可以不用考虑。
如果两个进程在不同机器的话,可以看情况使用Socket或Remoting。
如果是本机进程间通讯的话,那就用Remoting(IPC通道,.NET 2.0提供,1.1里没有)。
不过Remoting也要序列化和反序列化,所以在数据生成方面Remoting并没有优势。

如果楼主是本机通讯的话,可以尝试用Widnows消息来通讯。具体可以去看看我的Blog:
http://blog.csdn.net/wzd24