C++(调用java代理)要跨平台通讯用的什么技术?

是不是任何一种语言往一个端口写入数据,用socket,其他语言只要监听端口就能获得数据呢?从而实现了通讯?
[b]问题补充:[/b]
还真是不习惯这种回复的方式,还是CSDN那种清晰。。。。。

那个调用JVM.dll是不是就是常说的java代理啊,他怎么就能调用java、的类呢?请详细说明,
[b]问题补充:[/b]
请 kimmking 说明一下,可以加分,我只是想了解一下

java代理一般说的是java中的动态使用一个“代理”对象去调用其他对象的方法。

java带了一个动态代理Proxy,其根据一个接口生成一个代理对象,然后可以编写其调用方法的处理函数,我们在这个处理函数里,去调用其他对象,达到代理的目的。

基于对象的代码需要处理字节码的扩展库才能实现,比如cglib asm bcel之类的。
可以通过运行时或预先修改class文件(或内存中的字节流)的字节码,按照文件规范生成一个子类,同时加入想要的控制代码,再调用这个子类的对象示例,打到代理原来对象的目的。

你的理解是正确的,因为socket是语言无关的,基本上都是基于tcp来实现的

socket平台无关,语言也无关,你可以用tcp或udp,甚至可以基于服务器使用http或ftp等方式。
如果用c++连接java的socket,可以直接用mfc中封装好的socket类。
如果用c++调用java的class的类和方法,需要调用jvm.dll。

要想跨平台 就是把你要传输的东西 转换成协议 然后用不通的语言对协议进行解析 这就实现了跨平台。了解这样的原理,再想其它的 就通彻一些。

socket和跨平台不是一码事 如果仅仅是实现你说的socket语言无关平台无关那就肯定没问题 如果你想让linux下写的东西放到win上跑那你就必须对这两种系统你需要的api重新封装 然后你再调用你的新api实现功能 那套api做的就是虚拟机的一部分东西。

java和c++写的代码进行交互的话,可以使用JNI技术来实现,这是java平台的技术

java调用原生的库可以用jni jawin jacob
我有一个贴介绍这个的:
JNI技术实践小结--原理分析和详细步骤截图说明
http://setting.iteye.com/blog/304594

原生程序调用java就比较麻烦了
可以webservice 或是hessian等远程+序列化、反序列化方式
网上的资料比较多
原生且高效的办法是直接通过jvm调用
jdk文件夹下有一个include文件夹,里面有一些jvm库的h头文件和lib库,
如果你会c/c++,你就可以参考
http://hi.baidu.com/liuhui_007/blog/item/29f1088a1acef3dafd1f1082.html

还有一种不推荐的方式是把java程序class或jar,使用gcj或ikvm编译成不依赖jvm的本地化代码。

如果有服务端的话,lz想要的我觉得webservices很合适.而且相当成熟了.当然socket肯定也行的.