最近我在想异构平台通信的问题。比如我在A机器WINDOWS XP上用VS2008的C#写了一个向B机器发送字符串“Hello world!”,B机器是LINUX,我用Java在B机器的ECLIPSE上写了一个接收上述字符串的程序,可是第一.两台机器硬件是异构的;第二.两台机器操作系统是异构的;第三.两台机器所用的开发语言和开发平台也不一样,如果B机器JAVA程序能读取成功的话,那么A机器上的“Hello world!”是怎么被B机器的JAVA程序识别的?

解决方案 »

  1.   

    说说我的看法,供你参考:
    1.无论什么语言通信的底层都是走的winsock2,这个标准是一样的。
    2.基于一样的标准实现不同,但裸机对网络上的数据都是一比特的形式接收到网卡的,所以如果把你的通信数据字节化就能异构通信。
    3.异构解析的问题就看你的封包协议怎么写,简单的封包比如你前8个字节用来存储包头,8个字节里的2字节标识操作类型什么的,后面的没个字节都代表特殊的含义等,后面是数据体,那么基于1标准的winsock,标准的裸机比特流,那么异构通信所要关注的就是封包协议的解析问题,只要你要与之通信的异构体知道封包协议就会解除对应的数据然后处理。
      

  2.   

    不要想那么多...XML、SOAP协议、WebService就是异构系统的通信标准...