iOS MultipeerConnectivity 编程发送图片服务器端
2015-07-08 15:34
513 查看
//
// ViewController.m
// 070802blueserver
//
// Created by tianshangrenjian on 15/7/8.
// Copyright (c) 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
#import <MultipeerConnectivity/MultipeerConnectivity.h>
@interface
ViewController ()<MCSessionDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate>
@property (weak,
nonatomic) IBOutlet
UIImageView *ImgView;
@property (strong,nonatomic)
MCSession *session;
@property (strong,
nonatomic) MCAdvertiserAssistant *assistant;
@property (strong,
nonatomic) UIImagePickerController *imgPicker;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
MCPeerID *peer=[[MCPeerID
alloc] initWithDisplayName:@"sch-server"];
MCSession *session=[[MCSession
alloc] initWithPeer:peer];
session.delegate=self;
self.session=session;
MCAdvertiserAssistant *assistant=[[MCAdvertiserAssistant
alloc] initWithServiceType:@"sch-server"
discoveryInfo:nil
session:session];
self.assistant=assistant;
}
- (void)dealloc
{
[self.assistant
stop ];
}
- (void)didReceiveMemoryWarning {
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btStart:(id)sender {
[self.assistant
start];
}
- (IBAction)btPic:(id)sender {
UIImagePickerController *iPc=[[UIImagePickerController
alloc]
init];
self.imgPicker=iPc;
iPc.delegate=self;
[self
presentViewController:iPc animated:YES
completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info
{
UIImage *img=info[UIImagePickerControllerOriginalImage];
self.ImgView.image=img;
NSData *data=UIImagePNGRepresentation(img);
[self.session
sendData:data toPeers:[self.session
connectedPeers] withMode:MCSessionSendDataUnreliable
error:nil];
[picker dismissViewControllerAnimated:YES
completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES
completion:nil];
}
// Remote peer changed state
- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state
{
switch (state) {
case
MCSessionStateConnecting:
NSLog(@"connectiing!");
break;
case
MCSessionStateConnected:
NSLog(@"connected!");
default:
break;
}
}
// Received data from remote peer
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID
*)peerID
{
NSLog(@"receive data");
UIImage *img=[UIImage
imageWithData:data];
self.ImgView.image=img;
}
// Received a byte stream from remote peer
- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream
withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
{
}
// Start receiving a resource from remote peer
- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString
*)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress
{
}
// Finished receiving a resource from remote peer and saved the content in a temporary location - the app is responsible for moving the file to a permanent location within its sandbox
- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString
*)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error
{
}
@end
// ViewController.m
// 070802blueserver
//
// Created by tianshangrenjian on 15/7/8.
// Copyright (c) 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
#import <MultipeerConnectivity/MultipeerConnectivity.h>
@interface
ViewController ()<MCSessionDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate>
@property (weak,
nonatomic) IBOutlet
UIImageView *ImgView;
@property (strong,nonatomic)
MCSession *session;
@property (strong,
nonatomic) MCAdvertiserAssistant *assistant;
@property (strong,
nonatomic) UIImagePickerController *imgPicker;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
MCPeerID *peer=[[MCPeerID
alloc] initWithDisplayName:@"sch-server"];
MCSession *session=[[MCSession
alloc] initWithPeer:peer];
session.delegate=self;
self.session=session;
MCAdvertiserAssistant *assistant=[[MCAdvertiserAssistant
alloc] initWithServiceType:@"sch-server"
discoveryInfo:nil
session:session];
self.assistant=assistant;
}
- (void)dealloc
{
[self.assistant
stop ];
}
- (void)didReceiveMemoryWarning {
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btStart:(id)sender {
[self.assistant
start];
}
- (IBAction)btPic:(id)sender {
UIImagePickerController *iPc=[[UIImagePickerController
alloc]
init];
self.imgPicker=iPc;
iPc.delegate=self;
[self
presentViewController:iPc animated:YES
completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info
{
UIImage *img=info[UIImagePickerControllerOriginalImage];
self.ImgView.image=img;
NSData *data=UIImagePNGRepresentation(img);
[self.session
sendData:data toPeers:[self.session
connectedPeers] withMode:MCSessionSendDataUnreliable
error:nil];
[picker dismissViewControllerAnimated:YES
completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES
completion:nil];
}
// Remote peer changed state
- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state
{
switch (state) {
case
MCSessionStateConnecting:
NSLog(@"connectiing!");
break;
case
MCSessionStateConnected:
NSLog(@"connected!");
default:
break;
}
}
// Received data from remote peer
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID
*)peerID
{
NSLog(@"receive data");
UIImage *img=[UIImage
imageWithData:data];
self.ImgView.image=img;
}
// Received a byte stream from remote peer
- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream
withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
{
}
// Start receiving a resource from remote peer
- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString
*)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress
{
}
// Finished receiving a resource from remote peer and saved the content in a temporary location - the app is responsible for moving the file to a permanent location within its sandbox
- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString
*)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error
{
}
@end
相关文章推荐
- iOS线程开发小结
- iOS Block使用
- iOS【textView或者textField文本输入字数限制】
- ios项目总结一:开发中常用的设计模式
- iOS 开发之照片框架详解PhotoKit,ALAssetsLibrary
- iOS开发API常用英语名词
- 查看系统资源(iostat,top,vmstat,mpstat)
- iOS 8 AutoLayout与Size Class
- IOS开发之----常用函数和常数(转)
- iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解
- iOS如何才能在招聘中表现得靠谱?
- iOS容易造成循环引用的三种场景,就在你我身边!
- ios项目接入sdk事项
- ios 内存小结
- iOS 开发 admob 使用报错
- IOS实现文字水平无间断滚动
- iOS 9 适配系列教程
- iOS原生地图开发指南续——大头针与自定义标注
- iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解
- IOS-关闭(退)键盘事件--转