C# 中的多客户端服务器
本文关键字:客户端 服务器 | 更新日期: 2023-09-27 18:36:28
我正在用C# .Net编写服务器和客户端之间的聊天程序。除了聊天之外,两个用户都可以参与不同的活动,例如远程桌面和一起玩游戏。
我有几个问题:
-
多个线程将同时从客户端发送和接收内容,这意味着每个选项都需要确定哪个数据包适合他并从中获取数据?(在传输文件的同时运行远程桌面,远程桌面线程将看到文件数据包到达流,但应该忽略它,对吗?
-
为我将接受客户端的套接字设置的缓冲区大小是多少?
-
我是以包含数据的专用类的形式进行通信,还是尝试将通信保留为通过流发送的字节数组?
问题 2 和 3 对我们来说是不可能回答的,因为我们不知道沟通和要求是什么样的。
至于处理多个线程:这很难正确,我会使用现有的解决方案。
我建议你看看0MQ,因为它可能会阻止你重新发明轮子。
有可用的 .NET 客户端库:http://nzmq.codeplex.com/和 nuget 包 http://www.nuget.org/packages/clrzmq/2.2.5。
一个好的开始是指南。
有关快速示例,请参阅此 C# 服务器及其 C# 中的 hello world 客户端