dll和更新它们(c#)(客户端/服务器)
本文关键字:客户端 服务器 dll 更新 | 更新日期: 2023-09-27 18:04:50
我是一名软件工程师,我从事c#开发。
我正在工作的软件有一个服务器和客户端布局。服务器更像是一个数据库层,只是它可以直接"访问"数据库。客户端只是根据请求发送请求和接收字符串形式的数据,而不是数据集或数据表。数据库层通过dll文件与数据库交互。
的例子:
客户端请求执行操作144。服务器接收到操作号,发送给dll主例程:
Client:
string command = "144";
buffer = asci.GetBytes(command);
socket.send(buffer);
Server:
socket.receive(buffer);
str = asci.GetString(buffer);
op = Int32.Parse(str);
Dll.MainRoutine(op);
Dll main routine:
switch (op)
{
case 0: blah blah blah ; break;
case ..........................
case 144: i++ ; break ;
default : ;
}
假设软件在实际的服务器上运行。我现在只想对客户端和dll文件进行更改(添加功能)。然而,我不想再次编译服务器。如果我在客户端添加一个名为200的新命令,并在dll主例程中添加一个case: case 200,它会工作吗?还是我也需要重新编译服务器?
Client:
string command = "200";
buffer = asci.GetBytes(command);
socket.send(buffer);
Server:
socket.receive(buffer);
str = asci.GetString(buffer);
op = Int32.Parse(str);
Dll.MainRoutine(op);
Dll main routine:
switch (op)
{
case 0: blah blah blah ; break;
case ..........................
case 144: i++ ; break ;
case 200: i+=10 ; break ;
default : ;
}
我想说的是,我希望能够通过更新来添加功能的dll和客户端。服务器必须始终处于运行状态。这可以用dll完成吗,还是有其他方法?
谢谢…
如果只将命令号传递给DLL,则无需重新编译服务器。只需重新编译DLL并将其部署到服务器上就完全足够了。