代码之家  ›  专栏  ›  技术社区  ›  Joon. P

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

  •  0
  • Joon. P  · 技术社区  · 9 年前

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

    据我所知,

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

    如何在PC和iPhone之间实现这一点?

    我知道iPhone和PC一样有自己的ip地址,但要监听/发送的端口号呢?

    3 回复  |  直到 9 年前
        1
  •  1
  •   Mecki    4 年前

    iOS具有与macOS相同的BSD(POSIX)、CoreFoundation和Foundation网络API。你只需要用与两台Mac之间通信相同的方式来完成。

    就像在任何计算机上一样,您可以在1024以上的iPhone上打开任何UDP端口(下面的端口只能由系统进程打开,在macOS上也是一样),只要该端口尚未被另一个进程使用,然后您就会收到发送到此端口号的数据包。

    以下示例代码在iPhone上的工作原理与在Mac上的工作方式相同,与在Linux或BSD PC上的工作相同:

    https://www.geeksforgeeks.org/udp-server-client-implementation-c/

    它不会在Windows上运行,因为微软更喜欢用与世界其他地方不同且不兼容的方式来做每件事。

        2
  •  0
  •   abi    9 年前

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

        3
  •  -1
  •   JFCa    4 年前

    你无法访问iPhone端口,所以如果你想在手机中运行某种服务,那就忘了吧。这是来自网络单元的限制。