2010-09-07 46 views
2

我需要在Java应用程序(桌面)和iOS应用程序之间进行通信。我决定在iPhone端使用AsyncSocket(并且我已经获得了数据发送功能)。对于这个问题,OSX 10.6.4上的I'm just running the EchoServer demo app。源代码是here将Java连接到Objective-C(使用AsyncSocket)

这里是我的Java代码,煮了下来: “你好!有”

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

这工作和显示在TCP监视器上。

EchoServer,输出只是

  Accepted client 192.168.0.102:4960 

所以我知道他们在说,但我不能得到的数据!

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

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

回答

2

我觉得这是一个很好的线索,从演示的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"); 
+0

谢谢,我想通了这一点与在火车上没有连接又来了几个小时。我正要删除这个问题,但是因为你的答案在这里并且是正确的...... – 2010-09-08 05:46:08

+0

正确答案是你需要'\ r \ n \ r \ n' ...我尝试过所有其他组合。我不完全明白这一点,但.... – 2010-09-08 14:49:30