2012-06-08 37 views
1

我正在为我和朋友创建的XNA游戏编写一个Tcp服务器,我想知道如何发送到使用NetworkStream连接到服务器的特定客户端。例如,您可以获取主持人的玩家位置并将其发送给服务器,以便将其发送给其他连接的客户端。网络流和多个连接

+0

我正在关注一个解释TcpClient和NetworkStream似乎只有.Write()的教程。我第一次了解套接字服务器,你可以使用.SendTo()来做到这一点,但我不知道如何与NetworkStream。 – tcoy

+0

服务器将需要有多个NetworkStreams,每个客户端一个。假设客户端的数量不是固定的,那意味着您需要编码服务器来根据需要分配和释放它们。 – ekolis

+0

@ekolis我意识到自发布以来这已经很长时间了,但您将使用什么策略来分配和取消分配客户端? – Adsy2010

回答

2

您将需要几件事情读了起来:

这应该让你开始:

  1. TcpListener
  2. TcpClient

你的服务器需要有一个TcpListener 。如果您想要支持多个客户端,请创建一个客户端列表。每个连接的客户端将获得一个TcpClient。从这些客户端上的NetworkStream中读取数据。当您收到其中一个数据时,将其发送给其他人。

您需要定义某种协议,以便知道客户端发送的消息何时完成,并且可以提前发送。

+0

当然你可以定义你自己的协议。但还有另一种选择:使用现有的协议,如来自WCF的协议,或者例如JSON-RPC。 – svick