저는 iOS 프로그래밍의 초보자입니다. 제 문제를 해결하는 데 약간의 도움이 필요합니다 ... 나는이 문제에 대한 해결책을 찾으려고 많은 시간을 보냈지만 성공하지 못했습니다 ...TCP 소켓 통신 문제
몇 가지 TCP 명령을 내 서버로 보내는 매우 간단한 응용 프로그램 (iPad)을 작성 중입니다. 서버가 이미 구성되어 제대로 작동하고 있습니다. 내 아이 패드에 pTerm와 연결할 수 있으며, RAW TCP 또는 텔넷을 통해 성공적으로 연결 한 후 그처럼 보이는 내 서버로 요청을 보낼 수 있습니다
#100
는
하고 입력 그것이 작동하지 않습니다, 서버에 라인 정보의 끝 부분에 문제가 될 것으로 보인다 (일반적으로 이 키를 입력 눌러 완료) -
그러나 임 내 응용 프로그램에 그것을 할 때
.. 작동합니다. ...하지만 서버 측에서 아무것도 볼 수 없습니다내 .H 파일 모습을 - 서버는이 서버에 명령을 전송한다 리셋 버튼을 클릭 한 후, 192.168.1.220에 2000
포트 구성 :
#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
는 당신의 도움을 주셔서 감사합니다.
좋아, 제거했습니다. 나는 또한 # 100을 보냈지 만 - char-chr (13)의 끝을 보내는 방법을 모른다. 언제 – user1252412
언제? 이제는 작동하지만 다른 캐릭터를 보내시겠습니까? chr (13)? – fbernardo