Java中进程间的数据传输

littlefish00 2001-06-13 09:39:00
请教在JAVA中如何实现进程间的数据传输?
现在需要有一个程序B,而它收到的数据是从其它各个进程(A0、A1、A2...)发过来的,在UNIX中如果用C来实现可以用消息队列来实现,但在JAVA中不知该如何实现,同时还希望不失去JAVA的跨平台特性。
现在我用ServerSocket来实现,即在程序B中起一个ServerSocket监听其它进程(A0、A1...)传输数据。但总觉得还是有点不足,因为各个进程可能是不同的程序,它们同ServerSocket的连接可能有的是长连接(Socket发送数据后不关闭),有的是短连接(Socket发送数据后关闭),而如果用消息队列来实现的话就方便多了。
顺便问一下在JAVA中是否提供了共享内存等东西。
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kert_ake 2001-06-13
  • 打赏
  • 举报
回复
文件可以么?
littlefish00 2001-06-13
  • 打赏
  • 举报
回复
虎叔 2001-06-13
  • 打赏
  • 举报
回复
你现在的方法不是挺好吗!
littlefish00 2001-06-13
  • 打赏
  • 举报
回复
初一看,文件好象也行,但仔细想了一下还是比较困难,理由如下:
如果用文件来实现肯定是多个进程A0、A1、A2往一个指定的文件中写内容,而另一个程序B则不停地读这个文件并处理。在处理时有两种方法,一种是处理了一块内容后就在文件中把此内容删除掉,另一种处理方式是如果这块内容有个是否处理的标记,当处理完后把这个标记记上。但如果用读后删除的方式的话实现有点难,而且即使实现了对于效率也不高,因为所有对此文件的操作都将阻塞其它进程,对于处理后作标记的做法:当此文件的记录条数多的时候将会造成文件大小不断增大,尤其是当数据传输量大的时候。
而用RMI也不行,因为在这里进程A0、A1我并没有限制它们用JAVA来实现,它们可以用其它语言来实现。
mountainwang 2001-06-13
  • 打赏
  • 举报
回复
用rmi吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧