0

我正在用 C# .Net 在服务器和客户端之间编写一个聊天程序。除了聊天之外,两个用户都可以参与不同的活动,例如远程桌面和一起玩游戏。

我有几个问题:

  1. 多个线程将同时从客户端发送和接收内容,这意味着每个选项都需要识别哪个数据包是给他的并从中获取数据?(在传输文件的同时运行远程桌面,远程桌面线程会看到文件包到达流但应该忽略它,对吗?)

  2. 为我将接受客户端的套接字设置的良好缓冲区大小是多少?

  3. 我是以包含数据的专用类的形式进行通信,还是尝试将通信保持为我通过流发送的字节数组?

4

1 回答 1

1

我们无法回答问题 2 和 3,因为我们不知道沟通和需求是什么样的。

至于处理多个线程:这很难正确,我会使用现有的解决方案。

我建议你看看0MQ,因为它可能会阻止你重新发明轮子。

有可用的 .NET 客户端库:http ://nzmq.codeplex.com/ 和一个 nuget 包http://www.nuget.org/packages/clrzmq/2.2.5

一个好的开始是指南

有关快速示例,请参阅此 C# 服务器及其C#中的 hello world 客户端

于 2013-10-22T06:09:38.273 回答