用于浏览器游戏客户端的c#web服务器的概念

时间:2015-03-16 20:58:03

标签: c# http web client server

作为一名IT学生,我已经接受了制作Connect Four游戏的任务。 我的任务是编写一个简单的c#web服务器来监听http请求,这样两个玩家可以互相对战,一个是c#c形式,一个是网站。

但我对这样的事情是如何运作感到困惑。我们将拥有一个Web客户端,它只是游戏的设计,并将从c#代码中获取它的行为和数据。 c#服务器应该使用httpListener,httpListenerrequest和httpListenerContext类。

我不确定如何做这件事。任何帮助都会受到赞赏,如何开始这项任务,因为我不清楚要完成它。

问候, Durneztj

1 个答案:

答案 0 :(得分:1)

您需要六个项目

1:winforms - 连接4个客户端

2:网络应用程序 - 连接4个客户端

3:winforms - 连接4服务器(对于额外的点,使这成为一个Windows服务或web api项目)

4:类库 - 连接四个游戏逻辑和模型

5:4个测试项目

6:class lib - 连接到3的客户端代码

首先执行类lib。将所有模型和游戏逻辑放在这里,展示一个单独的类,其中包含启动游戏的方法,如果有人获胜,则进行移动和锻炼。为这个类创建一个接口。

在测试项目中编写测试以确保您拥有正确的基本游戏逻辑,您可以开始游戏并进行移动等等一切正常运行

然后转到服务器。这应该引用类lib并且只处理http监听和响应等。你需要在这里对模型对象进行连接处理和反序列化,但实质上你只是暴露与类lib相同的方法< / p> 现在做六个。再次引用模型类lib并继承相同的接口,但这次不是开始游戏或使用游戏逻辑进行移动,而是连接到服务器并调用它的开始和游戏,移动等等你将再次拥有将响应反序列化为模型对象。

现在做1和2.这些都是相似的,因为它们将引用模型类lib和客户端代码lib。你当然会向用户呈现不同的板,但是当他们移动,开始游戏等你只需要调用客户端类lib中的方法,服务器就会执行逻辑并返回结果

加分使用async任务方法ON EVERYTHING

如果它不起作用,请为您的服务器编写集成测试。这些将节省你的时间来确定它的客户端或服务器是否有错误

另一个额外点提示,使用Microsoft Unity框架进行依赖注入