我正在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