Все,iOS отправить команду на веб-сервер
У меня есть устройство OBDII, в котором есть веб-сервер. Я подключаюсь через Wi-Fi. Я хочу создать приложение для отправки команд и чтения данных, полученных с устройства.
Сначала я тестирую его с помощью терминала. Я подключаюсь с помощью сеанса telnet и могу отправить команду (0104), и я получаю ответ. Это прекрасно работает.
Теперь я хочу создать приложение, чтобы сделать то же самое. Я знаю, что могу подключиться с помощью:
- (void)initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.0.10", 35000, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
}
Соединение работает нормально.
Затем я хочу отправить команду. Я использую это:
- (IBAction)sendCommand:(id)sender {
NSString *response = [NSString stringWithFormat:@"%@", commandText.text];
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[data bytes] maxLength:[data length]];
}
Но я не получаю правильный ответ, я получаю? назад. Поэтому устройство не распознает команду ...
Что я делаю неправильно? Это неправильный формат? Разве это не String? Или он должен отличаться от ASCII?
Я уже пытался поставить \ r в конце команды, но это не помогает.