解决方案 »

  1.   

    这么搞你肯定死了,哪能这么干啊。你的数据库会被玩死的。频繁开闭啊。不就是一个State么? 用一个空文件将State写在文件名上也行啊。比如说,C++ 监视你的时候,C++程序就去查找 java_finished.txt如果找到了,然后将这个文件变成 C++_working.txt 然后就去查数据库。Java这个时候是循环查找监视 C++_finished.txtC++干完了,会把文件更新到  C++_finished.txt。然后Java再去数据库拿数据就好了。
      

  2.   

    可以考虑ActiveMQ,通过消息服务器进行通信!
      

  3.   

    Java这个时候是循环查找监视 C++_finished.txt怎么去做循环监视啊?如果对方c++发来一个“新邮件来了”,那么我jsp页面的iframe的topframe部分显示“新邮件来了”,并且java去读数据库;或者说Java发一个“刚发了一封新邮件”,c++收到这个消息,再去查数据库。
    如果这么做该用到什么技术呢?
      

  4.   

    写个socket,不管java做服务端还是c做服务端,
    都是一样的,服务端的一方开放监听端口,然后客户端的一方连接上去,一般建议用长连接(系统初始化的时候初始化这个连接),如果想省事,就用mina,但是感觉有点大材小用。可以写个简单的socket。几十行代码。
      

  5.   

    双方只是发消息,消息内容可以用一个字符,比如a表示邮件,b表示短信等待。。双方约定好,收到a怎么处理,收到b如何处理。
      

  6.   

    socket我简单写了个,试了下可以用,关键是我怎么整合到我的SSH框架的项目中,不知道把这个socket放在哪,我写了个MyClient类继承了Thread,类中我写入了socket客户端程序,系统初始化的时候初始化这个连接,因为我在servlet初始化init()就调用了这个MyClient类,并且给MyClient实例化了,这就代表启动了一个线程了,我要再发信息,又得调用这个MyClient类,还得实例化一次,那么又启动了一个线程,这样似乎不对,我想实例化这个MyClient类后,要发信息或收信息都去调用这个实例化好的类,也就是只有一个线程而且这个线程一直运行,线程中的socket也一直执行,一旦服务器端断开,就立即检测到,并重连,直到整个程序正常关闭,这个socket断开,线程消亡。请问我该怎么实现我所讲的这些功能呢?
      

  7.   

    写thread干啥,不需要一个线程啊,在servlet初始化的时候init方法里,初始化你的socket,这个socket可以单例模式。然后socket自己封装一个发送和接收消息的方法。程序里,如果需要发送消息,则直接单例拿到init时初始化好的socket对象,并调用它的发消息方法进行消息发送。在socket的接收方法中,接收到不同的信息,调用程序里不同的方法。
      

  8.   

    另外还需要注意一点,java和c++ socket通信的时候,注意数据的大小端问题。java默认大端数据
      

  9.   

    如果在一台机器上直接jni
    socket的话,你可以用spring创建一个单例的bean,设置lazyinit为false可以了,然后指定init-method。
    其他程序通过获取这个bean和c++进行通信。
      

  10.   

    创建一个定时任务处理socket,定时任务只要启动一次就好了,不知能不能实现你的目的