我正在Unix中开发一个相对简单的程序,它是模拟餐厅的客户机/服务器交互。
基本上,进入餐厅/服务器的客户可以订购一种或多种菜肴,然后通过FIFO发送给“厨师”。
菜单必须设置在某个位置,并且服务器和客户端都可以访问。它必须是一系列碟形结构。我的第一个想法是将所有这些都包含在自定义头文件中:
在shared.h中

   typedef struct _dish{
   char name [MAX_LEN];     //name of food
   int id;                  //ID
   int preptime;            //time needed to prepare it
   } dish;

   typedef struct _request {
   pid_t cpid;              //client pid
   dish menu [MENUSZ];      //array of dishes
   } request;


这样,客户端以“随机”方式选择菜肴,并将请求发送到服务器。
我的问题是:如何以及在哪里可以列出所有可用菜式?
此“菜单”必须对所有客户可用,并且必须单独定义。
为了说明我的意思,我必须做类似的事情:

  dish dish1;

  dish1.name = "Pasta";
  dish1.id = 1;
  dish1.preptime = 5;


像这样的东西,一个存储在某个位置的列表,客户端(和服务器很可能)可以访问该列表,从而更轻松地向服务器发送信息,这样我就可以发送ID,而服务器已经知道它是哪种食物。
提前致谢!

最佳答案

如果将它们放在标题中,则在菜单更改时都需要重新编译服务器和客户端;根据您的要求,更好的设计是将它们放在服务器上的配置文件中,并让客户端要求它– Christoph

09-30 00:00