【发布时间】:2012-02-05 20:50:12
【问题描述】:
我正在开发一个分布式应用程序,我需要将基于 Java 的客户端连接到基于 C++ 的服务器。他们两个都需要互相发送信息,但我需要他们能够在等待信息的同时做事,他们不知道什么时候会得到新的信息,或者发送信息。
我怎样才能做到这一点?现在我正在尝试使用 Sockets 实现基本的通信,但我并没有真正与它们进行通信。我读过使用套接字 + 线程通常是客户端-服务器应用程序的好方法。
能否请您推荐一些网络或书籍来阅读这方面的内容,或者给我一些示例代码来学习?
您认为我应该使用比套接字更好的其他方法吗?可能是更高级别的库(我需要它用于 c++ 和 java)或完全不同的方式?
编辑:
我会补充一些额外的信息。
我希望实现以下目标:
我的 C++ 程序有一个主循环,我想在其中进行类似 GetUpdatedDataFromRemoteDevice() 的调用,在其中我读取之前从网络(例如套接字)更新的一些数值变量的新值。
最终,C++ 程序需要向远程设备发送一条消息,告诉他发送其他类型的数据,然后继续获取更新的值。
从Java程序(远程设备)来看,运行的应用程序是一个交互式触摸屏,不会被网络传输阻塞,因为它必须继续为用户工作,所以所有的网络都应该在一个单独的线程中完成。
那个线程,应该连接到服务器,当一个按钮被按下时,开始循环发送数据(4个变化的数值),直到另一个事件发生。
如果能够轻松地重新连接到服务器,那就太好了。
【问题讨论】:
-
网上有很多sockets教程资料,google一下。在我们给出详细答案之前,需要更多细节。您需要发送的数据量和频率是多少?你说他们互相发送信息——这总是由客户端发起的,还是你需要一个允许服务器将数据推送到客户端的连接?
-
如果您正在寻找易于使用的消息传递,请查看:public.msli.com/lcs/muscle
标签: java c++ sockets client-server