C#中多个客户端的异步UDP服务器

时间:2011-03-22 13:52:15

标签: c# .net sockets network-programming udp

我有一项任务要做,我是网络新手,所以喜欢在编码之前讨论。我必须写下服务器端的UDP应用程序。服务器侦听来自许多客户端的连接请求(可能是100或更多)。当它收到它然后它通过几次来回发送确认进行一些握手,与客户端应用程序知道它的身份。建立连接后,它会从客户端接收不同类型的数据,并将其处理并放入sql数据库并将确认发送回客户端。定期向客户端发送命令以获取所需的特定信息。

我在Visual Studio 2005中使用C#。我应该使用多线程吗?线程池?异步还是同步UDP服务器?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您确定要的是UDP服务器吗?诸如“连接”,“握手”之类的术语都与TCP有关。

答案 1 :(得分:0)

我会在服务器和客户端中使用异步方法。它会使事情变得复杂,特别是在客户端。

原因是您写道服务器有时会向客户端发送内容。这使得简单的请求/回复类型的通信成为不可能(客户端调用Send,然后使用Receive直到收到正确的答案。)

如果您可以废弃该要求,我会使用同步客户端(进行一些轮询),这样可以让您更容易理解。

如果您有.Net 3.5,为什么不改为创建WCF服务?它支持TCP和回调(服务器可以调用客户端中的东西)。