【问题标题】:A server that will accept 2 clients or more and will send a response from one client to the other client将接受 2 个或更多客户端并将一个客户端的响应发送到另一个客户端的服务器
【发布时间】:2017-12-10 12:25:30
【问题描述】:

我正在尝试制作类似于真人快打的 1v1 (pc vs pc) 在线游戏,我尝试使用 TcpListener,但我不确定如何添加另一个客户端,所以它会是 1v1,我是也在争论点对点是否会更好,但我还没有找到任何 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);

这是我的代码,它接受一个客户但不确定还要添加什么,想到一个列表,但我不知道如何将一个客户的信息发送给第二个客户。

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

【问题讨论】:

  • 为什么在游戏中使用tcp?
  • @amirstack 我真的不知道该用什么,我想到了 P2P 但我找不到任何例子来实现它,你有什么建议? :)

标签: c# networking server p2p


【解决方案1】:

您必须在游戏中使用 Udp 协议。在 .Net 中你可以使用 Socket 类或 UdpClient 类来实现你的游戏,Socket 类更难但更灵活。 udp 协议是无连接的,您不需要将客户端相互连接。 编辑: 您可以在here获取更多信息

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2015-06-25
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多