我是大四的学生,毕业设计做一个聊天系统类似qq那样,客户端我想用vc来做,但是服务器为了稳定考虑我想做到linux上,所以说服务器端我想用java来开发,但是现在的问题是如果和客户端和服务器端进行通信的话怎么办?毕竟vc提供自己的socket通信类库,java也是提供自己的socket通信类库,那如何实现他们两个之间的通信呢???
    哪位高人来帮我解决一下

解决方案 »

  1.   

    as long as you use the same protocol...
      

  2.   

    不管socket是谁实现的, 通信内容都是一样的..
    你担心什么呢??
      

  3.   

    就用SOCKET 通讯,只要遵循TCP/IP 管它用什么语言,都可以!
      

  4.   

    我来简单回答这个问题就象你用vc写一个文件,你再用java去读一个文件样.这样说明白吗?
      

  5.   

    如果两端都是java程序的话,你可以直接将消息封装成MessageBean对象,将这个对象序列化以后,可以直接在网络之间通过socket传输该对象,也就是楼主所担心的问题。
    一般情况下,如果是异构的系统,你可以通过socket传递字节流,也就是byte(这里要考虑字节序的问题)也就是网络里面将的bit,这些都跟语言没有任何关系,当然你需要定义自己的网络传输协议(一般建立在TCP/IP基础上)。
      

  6.   

    用javah.exe编译xx.java成xx.h文件javah.exe 在JDK\bin里就可以用vc调用java的类了
    具体的用法去查资料
      

  7.   

    那就是说如果vc和java通讯只能传递byte流,不能传递对象流,也就是说不可以对象序列化。
      

  8.   

    JNI 可以实现,查下资料看看吧
      

  9.   

    通信软件的话可以采用一些标准的通信库就行吧,比如用sip把消息都封装成sip格式就不用担心异构了
      

  10.   

    我的项目中用到了java和VC通讯,采用最原始的SOCKET通讯,主要是定义了byte流协议。
    注意VC中定义的结构体要设置为1字节对齐,结构体中的short和int等类型要转成网络字节顺序后,可以整个结构体发送给java。
    java这边收到字节流后,可以放到一个ByteBuffer对象中,注意设置ByteBuffer的order即网络字节顺序。然后通过ByteBuffer对象取出VC中结构体的值。
      

  11.   

    晕,自己分别用VC和java写个基于TCP/IP的Sample就不会有这样的困惑了。
      

  12.   

    应该说“如何实现java和C++之间的通信?”,答案大家已经说得很明白了,我只是想提一下,我们不能把语言与开发平台混为一谈,vc只是一个开发平台而已!经常会听到有人说,“我想学vc,可是好难啊”,我想他所说的vc应该指的是MFC,有些兄弟还没学会C++,就开始做图形界面编程,不难才怪,是不是。