//
// ViewController.m
// 070703
//
// Created by tianshangrenjian on 15/7/6.
// Copyright © 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<NSStreamDelegate>
- (IBAction)btStart:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *btSend;
@property (strong, nonatomic) NSInputStream *inputStream;
@property (strong, nonatomic) NSOutputStream *outputStream;
- (IBAction)btSendMsg:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btStart:(id)sender {
CFReadStreamRef inputStream;
CFWriteStreamRef outputStream;
NSString *host=@"127.0.0.1";
int nPort=12345;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)host, nPort, &inputStream, &outputStream);
self.inputStream=(__bridge NSInputStream *)(inputStream);
self.outputStream=(__bridge NSOutputStream *)(outputStream);
self.inputStream.delegate=self;
[self.inputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.inputStream open];
[self.outputStream open];
}
- (void)readData
{
uint8_t buffer[1024];
NSInteger nLen=[self.inputStream read:buffer maxLength:1024];
NSData *data=[NSData dataWithBytes:buffer length:nLen];
NSString *str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"readData:%@",str);
}
- (void)stream:(nonnull NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventHasBytesAvailable:
[self readData];
break;
default:
break;
}
}
- (IBAction)btSendMsg:(id)sender {
NSString *str=@"SCH:daniutest";
NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
[self.outputStream write:data.bytes maxLength:data.length];
}
@end