Сокеты и служба Windows - PullRequest
0 голосов
/ 11 декабря 2010

есть парень в моей работе, который подключается к сокету через C, используя структуры байтов.Как я могу сделать то же самое в Android / Java.Я знаю, что могу добавить больше информации, но я думаю, что мне нужно несколько ответов, чтобы развить более правильную точку.

Заранее спасибо

1 Ответ

0 голосов
/ 11 декабря 2010

Читайте в классе java.net.Socket.

Upd: getOutputStream () предоставляет вам экземпляр OutputStream. Вы можете записать байтовые массивы прямо в него. Чтобы моделировать типы данных C, вам придется разбивать переменные на байты, используя операторы shift и mask. Например, чтобы написать int (предполагая, что он имеет младший порядок в проводнике), используйте:

int n;
MyOutStream.write(new byte[]{n&0xff, (n>>8)&0xff, (n>>16)&0xff, (n>>24)&0xff});

Для строк используйте toByteArray () с соответствующей кодировкой («US-ASCII» не уверен).

Существует также класс DataOutputStream, который может сделать то же самое для вас, но IIRC записывает небольшой заголовок перед данными, поэтому данные проводов будут несовместимы с существующим протоколом.

...