Objective C套接字服务器不接收Java套接字客户端消息

Objective C套接字服务器不接收Java套接字客户端消息,java,objective-c,sockets,Java,Objective C,Sockets,我使用CoCoCoaAsyncTask在Objective C中创建了服务器,若我从本地主机和同一网络上的telnet进行连接,它可以正常工作 现在我有一个Java客户机,可以与另一个Java服务器很好地工作,我无法进行通信;服务器端未收到任何消息 以下是Java客户端代码供参考: public class Client { public static void main(String[] args) { try { Socket socket

我使用
CoCoCoaAsyncTask
在Objective C中创建了服务器,若我从本地主机和同一网络上的telnet进行连接,它可以正常工作

现在我有一个Java客户机,可以与另一个Java服务器很好地工作,我无法进行通信;服务器端未收到任何消息

以下是Java客户端代码供参考:

    public class Client {
   public static void main(String[] args) {
       try {
           Socket socket = new Socket("192.168.0.106",4353);
           PrintWriter printWriter = new PrintWriter(socket.getOutputStream(),true);
           BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

           while (true) {
               System.out.println("Enter message: ");
               String msg = br.readLine();

               if (msg != null && !msg.equals("bye"))
               {
                   printWriter.println(msg);
               }
               else
               {
                   break;
               } } } catch (IOException e) {e.printStackTrace();} } }
和服务器目标C代码:

    ...
    [newSocket readDataToData:[GCDAsyncSocket CRLFData] withTimeout:15.0 tag:0];
    ...

    (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
        dispatch_async(dispatch_get_main_queue(), ^{
            @autoreleasepool {
                DDLogInfo(@"data: %@", data);
                NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length] - 2)];
                DDLogInfo(@"Info: %@", strData);
                NSString *msg = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
                DDLogInfo(@"Info: %@", msg);
我们已经尝试在末尾添加
\n
\r
,但没有成功


是什么原因导致这种通信中断

问题出在服务器端,通过使用
readDataToData
而不是
readDataWithTimeout
从套接字接收数据

最可能的情况是,问题出现在行尾,因此库不会将其作为一行进行处理,因此不会为下一个数据调用该方法