2013-10-21 227 views
0

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

我有几个问题:

  1. 多线程将被发送,并在同一时间接收来自客户端的东西,这意味着每个选项需要确定包是为他,并采取从数据它呢? (在同时传输文件的同时运行远程桌面,远程桌面线程将看到文件包到达流,但应该忽略它,对吧?)

  2. 什么是一个好的缓冲区大小设置为套接字我会接受客户?

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

+4

http://social.msdn.microsoft.com/Forums/vstudio/en-US/65c848ca-537a-4494 -b5e8-3509ea61c171/c-chat-application?forum = csharpgeneral – granadaCoder

+4

Windows Communication Foundation如何? http://msdn.microsoft.com/en-us/library/dd456779.aspx –

+0

WebSockets如何? http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20 –

回答

1

问题2和3对我们来说是不可能的,因为我们不知道沟通和要求是什么样子。

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

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

有.NET客户端库可用:http://nzmq.codeplex.com/和nuget包http://www.nuget.org/packages/clrzmq/2.2.5以及。

良好的开端是The Guide

对于一个简单的例子看this C# server及其hello world client in C#