如何使用RMI或套接字与jade代理进行通信形成外部应用程序

时间:2015-12-02 10:13:12

标签: sockets rmi agents-jade

请帮忙!

如何使用RMI或Java套接字与外部应用程序中的jade代理进行通信? 谢谢。

1 个答案:

答案 0 :(得分:0)

Jade代理是玉平台内的对象。每个代理都有一个生命周期(设置,操作,删除)。在容器/平台中的代理之间或在不同容器/平台中的代理之间进行通信是使用ACL消息传递协议完成的,并且它完全由jade框架处理,因此您通常不需要使用套接字或RMI来在代理之间进行通信,但是如果您的代理需要与任何外部应用程序通信,它完全可能(并且完全不推荐),您可以在任何代理行为if (Properties.Settings.Default.AlsExcel == true) { Excel.Application objExcel = new Excel.Application(); objExcel.Visible = false; objExcel.WindowState = Excel.XlWindowState.xlNormal; object missing = Missing.Value; string Name = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DienstplanEx.xlsx"); Excel.Workbook objWorkbook = objExcel.Workbooks.Open(Name, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); Excel.Worksheet worksheet = (Excel.Worksheet)objWorkbook.Worksheets["Tabelle1"]; if (!Directory.Exists(Pfad)) { Directory.CreateDirectory(Pfad); } objWorkbook.SaveAs(Pfad + "\\Plan.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing); objWorkbook.Close(); objExcel.Quit(); 方法中执行此操作。比如像这样:

action

请注意,jade中的每个代理只运行一个线程,因此如果您的代理有多个行为,那么任何行为中的任何阻塞操作都会导致执行其他行为时出现饥饿现象,您应该注意这一点。使用阻塞套接字操作 希望这会有所帮助。