客户端 - 服务器应用设计

时间:2010-06-15 16:48:08

标签: c# .net network-programming client-server

我想在.net平台上使用套接字创建一个客户端 - 服务器应用程序,并且是网络编程的新手,我有一个两难的境地。 客户端会经常向服务器发送数据,服务器也会经常通知客户端。 设计它的最佳方法是什么?如果服务器保留一个线程与每个客户端通信,直到它退出或只是客户端向服务器发送数据并且它定期更新客户端(几秒钟)或者没有那些? 一些帮助会很棒。多谢你们。 PS:客户数量将达到数千人。

3 个答案:

答案 0 :(得分:3)

您所描述的设计类型的.net解决方案称为 Windows Communication Foundation 或简称WCF。

WCF允许异步回调,这是实现您描述的架构类型的一种方式。我用Michele Bustamante的书“学习WCF ”完成了大部分关于WCF的学习。 WCF非常广泛,我建议不要在没有良好参考的情况下从臀部拍摄。

答案 1 :(得分:0)

当我为一个项目编写Web服务器时,我的方式就是你在服务器上有你的主线程来监听新的请求。一旦请求产生一个新线程并从另一个端口响应客户端。只要您的客户端/服务器正在通信,您就可以保持第二个线程处于活动状这需要多长时间取决于很多事情。你会有成百上千的客户吗?如果是这样,您应该经常关闭线程/端口。但是,如果你只有几个客户让他们保持更长的开放时间。

我假设每个客户端发送给客户端的数据不同。如果它是相同的数据,那么你应该使用UDP一次性地向所有客户端广播。

答案 2 :(得分:0)

那将取决于。您的应用程序是否依赖于输入,可以将其简化为代码块,是否可以按任何顺序处理,...,许多未知的情况。

异步套接字具有优点,但不适用于所有类型的应用程序。

阻塞套接字也有优点,概念化和实现更简单,并且有许多应用程序用途。

您需要首先确定您的需求,这将决定您如何实施未来的工作。