跳转到内容

Network 模块

类: TcpSocket、TcpListener、UdpSocket、Socket、SocketSelector、Packet、IpAddress、Http、Ftp(弃用)、Sftp(3.1)
命名空间: sf::Dns(3.1)

// 弃用:sf::IpAddress::resolve(...)
auto addresses = sf::Dns::resolve("www.sfml-dev.org"); // optional<vector<IpAddress>>,IPv4+IPv6
sf::Dns::queryNs / queryMx / querySrv / queryTxt
sf::Dns::getPublicAddress(sf::seconds(5)); // 可选 IPv6

IpAddress:toString()、isV4() / isV6() 等;解析失败用 optional 表达。

  • Packet:<< / >> 序列化;append / clear
  • TcpSocket:connect、disconnect、send / receive(数据或 Packet);TLS:setupTlsClient / setupTlsServer(3.1 相关能力)
  • UdpSocket:bind / unbind、send / receive
  • Socket::Status / Type scoped;getNativeHandle()(原 getHandle)
  • SocketSelector:传统 add + isReady;3.1 add(..., ReadinessType, callback) + dispatchReadyCallbacks()
sf::Http http;
if (!http.setHost("https://www.sfml-dev.org")) { /* 解析失败 */ }
sf::Http::Request req("/");
sf::Http::Response res = http.sendRequest(req); // sendRequest 现为 const
// 可选关闭证书校验:sendRequest(req, sf::Time::Zero, /*verifyServer=*/false)

Http::Request::Method、Response::Status 为 scoped enums。

  • sf::Ftp 弃用(明文)
  • sf::Sftp:connect、login(密码或公私钥)、getDirectoryListing、download / upload(回调)、createDirectory、deleteFile、rename、disconnect