首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能通过WIFI直接连接Android和IOS吗?

我能通过WIFI直接连接Android和IOS吗?
EN

Stack Overflow用户
提问于 2014-04-09 13:05:54
回答 1查看 1.7K关注 0票数 1

我想通过WIFI直接在Android和IOS之间传输文件。

安卓有WifiP2p图书馆

和IOS有MultiPear连接库用于WIFI直接

但它不兼容两个图书馆!

彼此找不到网络服务

如何连接Android和IOS来传输文件?

EN

回答 1

Stack Overflow用户

发布于 2014-04-09 15:26:32

你必须使用NSInputStream & NSOutputStream来连接android。这不是一个简单的任务。

第一,

代码语言:javascript
运行
复制
@property (nonatomic, strong, readwrite) NSInputStream *inputStream;
@property (nonatomic, strong, readwrite) NSOutputStream *outputStream;

然后加上这个方法,

代码语言:javascript
运行
复制
- (void)initNetworkCommunication {

    uint portNo = 5555;
    CFReadStreamRef readStream;
    CFWriteStreamRef writeStream;
    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", portNo, &readStream, &writeStream);
    inputStream = (__bridge NSInputStream *)readStream;
    outputStream = (__bridge NSOutputStream *)writeStream;

    [inputStream setDelegate:self];
    [outputStream setDelegate:self];

    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [inputStream open];
    [outputStream open];
}

您必须调用此方法来启动流。

要从这条流中发送一些东西,下面是一个例子。

代码语言:javascript
运行
复制
- (IBAction)photoClick:(id)sender {

    NSData *newData = UIImagePNGRepresentation([UIImage imageNamed:@"s.jpg"]);
    int index = 0;
    int totalLen = [newData length];
    uint8_t buffer[1024];
    uint8_t *readBytes = (uint8_t *)[newData bytes];

    while (index < totalLen) {
        if ([outputStream hasSpaceAvailable]) {
            NSLog(@"Sending");
            int indexLen =  (1024>(totalLen-index))?(totalLen-index):1024;

            (void)memcpy(buffer, readBytes, indexLen);

            int written = [outputStream write:buffer maxLength:indexLen];

            if (written < 0) {
                break;
            }

            index += written;

            readBytes += written;
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22963496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档