将接受2个或更多客户端的服务器,并将从一个客户端向另一个客户端发送响应

时间:2017-12-10 12:25:31

标签: c# networking server p2p

我正在尝试制作1v1(pc vs pc)在线游戏,就像Mortal Kombat,我尝试使用TcpListener,但我不知道如何添加另一个客户端,所以它将是1v1,我是还讨论Peer to Peer是否会更好,但我没有找到P2P的任何代码示例,所以我还没有尝试进入它。

 serverSocket = new TcpListener(IPAddress.Any, 8000);
        clientSocket = default(TcpClient);
        serverSocket.Start();
        MessageBox.Show("Server started");
        clientSocket = serverSocket.AcceptTcpClient();
        MessageBox.Show("Client connected!");
        byte[] response = new byte[clientSocket.ReceiveBufferSize];
        NetworkStream networkStream = clientSocket.GetStream();
        networkStream.Read(response, 0, clientSocket.ReceiveBufferSize);

这是我接受一个客户端的代码,但不知道还有什么要添加,想到List,但我不知道如何将一个客户端的信息发送到第二个客户端。

我需要服务器适合客户端与客户端连接,因此每次单击按钮时它都会从一个客户端向另一个客户端发送消息。

1 个答案:

答案 0 :(得分:0)

你必须在游戏中使用Udp协议。在.Net中你可以使用Socket类或UdpClient类来实现你的游戏,Socket类更难但更灵活。 Udp协议是无连接的,您不需要将客户端彼此连接。 修改 您可以在here

中获取更多信息