zoukankan      html  css  js  c++  java
  • zmq-ios framwork

    1.附件见zeromq-ios.framework百度网盘/iOS/zmq

    2.zeromq-ios.framework解压拖进工程文件
    3.objc-zmq见百度网盘/iOS/zmq
    4.objc-zmq.zip解压拖进工程文件
    5.other link flags -lstdc++
    6.客户端
    #import “ZMQObjC.h"
    
       ZMQContext *ctx = [[ZMQContext alloc] initWithIOThreads:1];
    
        
    
        NSString *endpoint = @"tcp://localhost:5555";
    
        ZMQSocket *requester = [ctx socketWithType:ZMQ_REQ];
    
        BOOL didConnect = [requester connectToEndpoint:endpoint];
    
        if (!didConnect) {
    
            NSLog(@"*** Failed to connect to endpoint [%@].", endpoint);
    
            return;
    
        }
    
        
    
        int kMaxRequest = 10;
    
        NSData *request = [@"Hello" dataUsingEncoding:NSUTF8StringEncoding];
    
        for (int request_nbr = 0; request_nbr < kMaxRequest; ++request_nbr) {
    
            
    
            @autoreleasepool {
    
                
    
                NSLog(@"Sending request %d.", request_nbr);
    
                [requester sendData:request withFlags:0];
    
                
    
                NSLog(@"Waiting for reply");
    
                NSData *reply = [requester receiveDataWithFlags:0];
    
                NSString *text = [[NSString alloc] initWithData:reply encoding:NSUTF8StringEncoding];
    
                NSLog(@"Received reply %d: %@", request_nbr, text);
    
            }
    
            
    
        }
    
        
    
        
    
        [ctx closeSockets];
    
        [ctx terminate];

    7.服务器端

    #import “ZMQObjC.h"
    
        
    
        ZMQContext *ctx = [[ZMQContext alloc] initWithIOThreads:1];
    
        
    
        NSString *endpoint = @"tcp://*:5555";
    
        ZMQSocket *responder = [ctx socketWithType:ZMQ_REP];
    
        BOOL didBind = [responder bindToEndpoint:endpoint];
    
        if (!didBind) {
    
            NSLog(@"*** Failed to bind to endpoint [%@].", endpoint);
    
            return EXIT_FAILURE;
    
        }
    
        
    
        while (1) {
    
            @autoreleasepool {
    
                
    
                //  Wait for next request from client
    
                NSData *data = [responder receiveDataWithFlags:0];
    
                //NSData *data = [responder receiveWithBuffer:<#(void *)#> length:<#(size_t)#> flags:<#(ZMQMessageReceiveFlags)#>]
    
                NSString *text = [[NSString alloc]
    
                                  initWithData:data encoding:NSUTF8StringEncoding];
    
                NSLog(@"Received request: %@", text);
    
                
    
                //  Do some 'work'
    
                NSLog(@"do some work");
    
                sleep (1);
    
                
    
                //  Send reply back to client
    
                NSString *world = @"World";
    
                NSData *reply = [world dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    
                BOOL ok = [responder sendData:reply withFlags:0];
    
                if (!ok) {
    
                    NSLog(@"failed to reply");
    
                }
    
            }
    
        }
    
        
    
        [ctx terminate];
  • 相关阅读:
    Oracle 存储过程_(收集)
    Oracle job procedure 存储过程定时任务(转自hoojo)
    windows环境下,Jenkins的安装和基础配置
    如何使用IntelliJ IDEA 配置Maven
    在IntelliJ IDEA中安装Junit,TestNG
    JAVA 操作 properties 配置文件
    Java语法----Java中equals和==的区别(转载)
    由于网页点击速度过快,导致selenium无法定位到元素的问题
    使用IntelliJ idea运行selenium3.0
    selenium webdriver java环境配置
  • 原文地址:https://www.cnblogs.com/yyzanll/p/4482449.html
Copyright © 2011-2022 走看看