首页 > 代码库 > ios socket(基础demo)
ios socket(基础demo)
http://blog.sina.com.cn/s/blog_7a2f0a830101ecv4.html
clinetSocket 1、viewcontroller.h@interface ViewController : UIViewController<</span>GCDAsyncSocketDelegate,UITextFieldDelegate>{ GCDAsyncSocket *socket;}@property(strong) GCDAsyncSocket *socket@property (strong, nonatomic) IBOutlet UITextField *host;@property (strong, nonatomic) IBOutlet UITextField *message;@property (strong, nonatomic) IBOutlet UITextField *port;@property (strong, nonatomic) IBOutlet UITextView *status;- (IBAction)connect:(id)sender;- (IBAction)send:(id)sender;@endviewcontroller.m //连接服务器- (IBAction)connect:(id)sender { socket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; socket.delegate = self; NSError *err = nil; BOOL connState=[socket connectToHost:host.text onPort:[port.text intValue] error:&err]; if(!connState) { [self addText:err.description]; }else { NSLog(@"连接服务器:%@ 成功",host.text); [self addText:@"打开端口"]; }}-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port{ [self addText:[NSString stringWithFormat:@"连接到:%@",host]]; [socket readDataWithTimeout:-1 tag:0];}- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err{ NSLog(@"socket did is connect:%@",err);}//发送数据- (IBAction)send:(id)sender { [socket writeData:[message.text dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0]; [self addText:[NSString stringWithFormat:@"发送的数据:%@",message.text]]; [message resignFirstResponder]; [socket readDataWithTimeout:-1 tag:0];}//读取服务器获取的数据-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ NSString *newMessage = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; [self addText:[NSString stringWithFormat:@"服务器:%@:%@",sock.connectedHost,newMessage]]; [socket readDataWithTimeout:-1 tag:0];} #pragma mark - View lifecycle-(void)addText:(NSString *)str{ status.text = [status.text stringByAppendingFormat:@"%@\n",str];}- (void)viewDidLoad{ [super viewDidLoad]; //设置默认的服务器地址和端口 host.text = @"192.168.2.107"; port.text = @"54321"; // Do any additional setup after loading the view, typically from a nib.}2、serviceSocket1、appdelegate.h #import "GCDAsyncSocket.h"#import "GCDAsyncUdpSocket.h"@interface AppDelegate : NSObject <</span>NSApplicationDelegate,GCDAsyncSocketDelegate,GCDAsyncUdpSocketDelegate>{ GCDAsyncSocket *socket; GCDAsyncSocket *s;}@property(strong) GCDAsyncSocket *socket;- (IBAction)listen:(id)sender;@property (unsafe_unretained) IBOutlet NSTextView *status;@property (unsafe_unretained) IBOutlet NSTextField *port;@property (unsafe_unretained) IBOutlet NSTextField *host;@property (assign) IBOutlet NSWindow *window;2、appdelegate.m @implementation AppDelegate@synthesize status;@synthesize port;@synthesize host;@synthesize window = _window;@synthesize socket;- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{ //服务器的端口号 port.stringValue = http://www.mamicode.com/@"54321";}-(void)addText:(NSString *)str{ status.string = [status.string stringByAppendingFormat:@"%@\n",str];}//开始监听- (IBAction)listen:(id)sender { NSLog(@" begin listen"); socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; NSError *err = nil; if(![socket acceptOnPort:[port integerValue] error:&err]) { [self addText:err.description]; }else { [self addText:[NSString stringWithFormat:@"开始监听%d端口.",port.integerValue]]; }}- (void)socket:(GCDAsyncSocket *)sender didAcceptNewSocket:(GCDAsyncSocket *)newSocket{ // The "sender" parameter is the listenSocket we created. // The "newSocket" is a new instance of GCDAsyncSocket. // It represents the accepted incoming client connection. // Do server stuff with newSocket... [self addText:[NSString stringWithFormat:@"建立与%@的连接",newSocket.connectedHost]]; s = newSocket; s.delegate = self; [s readDataWithTimeout:-1 tag:0];}//向客户端写数据-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ NSString *receive = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; [self addText:[NSString stringWithFormat:@"%@:%@",sock.connectedHost,receive]]; NSString *reply = [NSString stringWithFormat:@"服务器收到:%@",receive]; [s writeData:[reply dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0]; [s readDataWithTimeout:-1 tag:0];}@end
ios socket(基础demo)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。