Подключение Java к Objective-C (используя AsyncSocket) - PullRequest
2 голосов
/ 08 сентября 2010

Мне нужно установить связь между приложением Java (на рабочем столе) и приложением iOS.Я решил использовать AsyncSocket на стороне iPhone (и получил отправку данных на работу).На этот вопрос я просто запускаю демонстрационное приложение EchoServer на OSX 10.6.4.Исходный код здесь .

Вот мой 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 (с большим количеством кода) я получаю сообщение Welcome to "AsyncSocket Echo Server".

Редактировать: ЕслиЯ смотрю на сервер, он работает отлично, поэтому проблема в моем коде Java.Что еще мне нужно сделать для полной записи в сокет правильно?

1 Ответ

2 голосов
/ 08 сентября 2010

Я думаю, что это хорошая подсказка, взятая из демоверсии 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...