ios - 如何在 NWConnection 中为 UDP 广播设置发送者的端口
问题描述
我有一个小型 ruby 服务器,我想通过 iOS 应用程序向它发送一条 UDP 消息。它运行良好,但(发件人)iOS 端口每次都是随机端口,我希望它是固定端口。
这是发送消息的 iOS 代码:
guard let data = "Hello".data(using: .utf8) else { return }
let queue = DispatchQueue(label: "connection")
let params = NWParameters.udp
client = NWConnection(host: NWEndpoint.Host("255.255.255.255"), port: NWEndpoint.Port(integerLiteral: 49000), using: params)
client?.start(queue: queue)
client?.send(content: data, completion: .idempotent)
这是显示发送者和消息的 Ruby 服务器的输出:
AF_INET
51269 <----------- Port is not 49001
192.168.1.241
192.168.1.241
48656c6c6f
AF_INET
60451 <----------- Port is not 49001
192.168.1.241
192.168.1.241
48656c6c6f
我尝试添加此参数以将发送方套接字设置为固定值 49001。
params.requiredLocalEndpoint = NWEndpoint.hostPort(host: NWEndpoint.Host("0.0.0.0"), port: 49001)
但它也不起作用。任何想法 ?
感谢大家的帮助,Network框架的文档很差。
解决方案
它适用于不在模拟器上的实际 iOS 设备。
推荐阅读
- python - 合并具有时间容差的 pandas 时间序列
- css - 将 CSS 自定义属性声明为键而不是值,这可能吗?
- java - Android - 没有这样的表:现有表中的材料
- python - Keras:没有名为 keras.models 的模块
- python-3.x - 随着时间的推移重新平衡投资组合
- javascript - 使用 Angular 2 更改引导日期格式
- go - 如何根据 Go 中的名称猜测文件的类型和编码?
- python - 在不使用插入的情况下插入 Numpy 数组
- android - 如何使用缺少 Application() 类的 Android 应用程序?
- bash - 一个检查 nginx 服务是否正在运行的 shell 脚本,带有操作