PC与iPhone之间的UDP通信机制?
Mechanism of UDP communication between PC and iPhone?
我正在尝试创建一个测试应用程序以打开 PC 和 iPhone 之间的 UDP 连接。
据我所知,
对于 UDP,2 台 PC 可以通过彼此的 IP 地址和端口号相互通信。
如何在 PC 和 iPhone 之间完成此操作?
我明白 iPhone 和 PC 一样有自己的 IP 地址,但是要收听/发送的端口号呢?
您可以使用NSStream实现UDP套接字通信。
使用此代码建立套接字连接:
NSInputStream *inputStream;
NSOutputStream *outputStream;
- (void)initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 80, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
}
您无法访问 iPhone 端口,因此,如果您正在考虑 phone 中的 运行 类服务,那就算了吧。这是网络小区的限制。
iOS 具有与 macOS 相同的 BSD (POSIX)、CoreFoundation 和 Foundation 网络 API。您只需按照与两个 Mac 之间的通信相同的方式进行操作。
就像在任何计算机上一样,您可以在 iPhone 上打开 1024 以上的任何 UDP 端口(以下端口只能由系统进程打开,在 macOS 上也是如此),只要该端口是尚未被另一个进程使用,然后您收到发送到此端口号的数据包。
以下示例代码在 iPhone 上的工作原理与在 Mac 上的工作原理与在 Linux 或 BSD PC 上的工作原理相同:
https://www.geeksforgeeks.org/udp-server-client-implementation-c/
它不会在 Windows 上运行,因为 Microsoft 更喜欢始终以与宇宙中其他公司不同且不兼容的方式来做所有事情。
我正在尝试创建一个测试应用程序以打开 PC 和 iPhone 之间的 UDP 连接。
据我所知,
对于 UDP,2 台 PC 可以通过彼此的 IP 地址和端口号相互通信。
如何在 PC 和 iPhone 之间完成此操作?
我明白 iPhone 和 PC 一样有自己的 IP 地址,但是要收听/发送的端口号呢?
您可以使用NSStream实现UDP套接字通信。
使用此代码建立套接字连接:
NSInputStream *inputStream;
NSOutputStream *outputStream;
- (void)initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 80, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
}
您无法访问 iPhone 端口,因此,如果您正在考虑 phone 中的 运行 类服务,那就算了吧。这是网络小区的限制。
iOS 具有与 macOS 相同的 BSD (POSIX)、CoreFoundation 和 Foundation 网络 API。您只需按照与两个 Mac 之间的通信相同的方式进行操作。
就像在任何计算机上一样,您可以在 iPhone 上打开 1024 以上的任何 UDP 端口(以下端口只能由系统进程打开,在 macOS 上也是如此),只要该端口是尚未被另一个进程使用,然后您收到发送到此端口号的数据包。
以下示例代码在 iPhone 上的工作原理与在 Mac 上的工作原理与在 Linux 或 BSD PC 上的工作原理相同:
https://www.geeksforgeeks.org/udp-server-client-implementation-c/
它不会在 Windows 上运行,因为 Microsoft 更喜欢始终以与宇宙中其他公司不同且不兼容的方式来做所有事情。