PC和iPhone之间的UDP通信机制?

时间:2016-02-05 02:52:27

标签: ios iphone sockets tcp udp

我正在尝试创建一个测试应用程序来打开PC和iPhone之间的UDP连接。

据我所知,

对于UDP,2台PC可以通过彼此的IP地址和端口号相互通信。

如何在PC和iPhone之间完成这项工作?

我知道iPhone有自己的IP地址,就像PC一样,但是收听/发送的端口号怎么样?

3 个答案:

答案 0 :(得分:1)

您可以使用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;
}

本教程将帮助您: http://www.raywenderlich.com/3932/networking-tutorial-for-ios-how-to-create-a-socket-based-iphone-app-and-server

答案 1 :(得分:1)

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 更喜欢始终以与宇宙其他部分不同且不兼容的方式来做所有事情。

答案 2 :(得分:0)

您无法访问iPhone端口,因此,如果您正在考虑在手机中运行某种服务,就算了吧。这是小区联网的限制。