Я новичок в программировании на iOS - и мне нужна небольшая помощь в решении моей проблемы ...
Я потратил много часов, пытаясь найти решение этой проблемы, но безуспешно ...
Я пишу очень простое приложение (на iPad), которое будет отправлять несколько команд TCP на мой сервер. Сервер уже настроен и работает правильно. Я могу подключиться к нему с помощью pTerm на своем iPad, и после успешного подключения через RAW TCP или telnet я могу отправить запрос на свой сервер в следующем виде:
#100
введите
и это работает ..
Но когда я пытаюсь сделать это в своем приложении - это не работает, кажется, это проблема с информацией о конце строки для сервера (обычно это делается нажатием клавиши enter ).
Сервер настроен на 192.168.1.220, порт 2000.
После нажатия кнопки сброса он должен отправить команду на сервер - но я ничего не вижу на стороне сервера ...
Мой .h файл выглядит так:
#import <UIKit/UIKit.h>
NSInputStream *inputStream;
NSOutputStream *outputStream;
@interface ViewController : UIViewController <NSStreamDelegate>
@property (weak, nonatomic) IBOutlet UIButton *resetbutton;
@property (strong, nonatomic) IBOutlet UIView *viewController;
- (IBAction)resetbuttonclick:(id)sender;
@end
мой .m файл:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize resetbutton;
@synthesize viewController;
- (void) viewDidLoad
{
[self initNetworkCommunication];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void) viewDidUnload
{
[self setViewController:nil];
[self setResetbutton:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
- (void)initNetworkCommunication
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.220", 2000, &readStream, &writeStream);
inputStream = objc_unretainedObject(readStream);
outputStream = objc_unretainedObject(writeStream);
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
}
- (void)sendMessage
{
NSString *response = [NSString stringWithFormat:@"#100\n"];
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[data bytes] maxLength:[data length]];
}
- (IBAction)resetbuttonclick:(id)sender
{
[self initNetworkCommunication];
[self sendMessage];
}
@end
Большое спасибо за вашу помощь.