gpt4 book ai didi

c++ - sfml 中已连接客户端的端口

转载 作者:行者123 更新时间:2023-11-28 06:48:07 25 4
gpt4 key购买 nike

我不明白 (tcp-)ports 是如何工作的(在 sfml 中)。

根据我的理解,sf::TcpListener 是一个sf::TcpSocket,除了接受连接外,它不能真正发送或接收数据。

假设我在不同端口上有多个监听器:将它们想象成我的游戏(第一个端口)和我正在编写的配置工具(第二个端口)的客户端。

我想根据收到它们的端口不同地处理sf::Packet

但这就是问题所在:我不知道连接是如何工作的,但我猜它必须分配一个不同的端口(否则我会有两个客户端都在连接到同一个端口的本地主机上运行)。所以我不能再在端口上切换了。

  • 有什么方法可以让我从 sfml 中的客户端实现中接收信息,它有意连接到哪个端口?

  • 是否有一种算法可以用来确定它是哪个端口(当前端口接近预期端口或类似的端口)?

  • 我需要将其存储在结构中吗

    结构 wrapped_socket
    {
    uint16_t 意向端口;
    sf::TcpSocket 套接字;
    };

    这需要更改我当前的服务器代码库(调用 wrapped_socket::socket->send() 而不是 socket->send,或者

  • 有没有我没有想到的更好、更直接的解决方案?

非常感谢任何帮助。

最佳答案

您有两个不同的sf::TcpListener 对象。您检查第一个监听器对象上的连接,并将这些连接放在一个集合中。然后检查第二个监听器对象上的连接,并将这些连接放入第二个集合中。

这样连接就分开了,因此可以相应地处理。

关于c++ - sfml 中已连接客户端的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com