代码之家  ›  专栏  ›  技术社区  ›  Dan Rosenstark

将Java连接到Objective-C(使用AsyncSocket)

  •  2
  • Dan Rosenstark  · 技术社区  · 15 年前

    我需要在Java应用程序(桌面)和iOS应用程序之间进行通信。我决定用 AsyncSocket 在iPhone方面(我已经将数据发送到了工作中)。对于这个问题, I'm just running the EchoServer demo app 在OSX 10.6.4上。源代码是 here

    下面是我的Java代码,总结如下:

        Socket echoSocket = new Socket("192.168.0.102", 8085);
        PrintWriter out = new PrintWriter(echoSocket.getOutputStream(), true);
        out.println("hello there!");
        out.flush();
    

    这个和“你好!”出现在TCP监视器上。

               Accepted client 192.168.0.102:4960
    

    所以我知道他们在说话,但我拿不到数据!

    编辑: 在Java方面(有更多代码),我确实收到了欢迎使用“asyncsocketechoserver”消息。

    编辑:如果我浏览到服务器,它工作得很好,所以问题出在我的Java代码中。我还需要做什么才能正确地完成对套接字的写入?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Stefan Arentz    15 年前

    我认为这是一个很好的线索,取自那个演示 AppController.m

    [sock readDataToData:[AsyncSocket CRLFData] withTimeout:READ_TIMEOUT tag:0];
    

    看起来它会读到一行,以CR和LF结尾。因此,您可能需要在Java端执行以下操作:

    out.print("hello, there\r\n");
    

    或者可能是一样的:

    out.println("hello, there\r");