• 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];
  • 相关阅读:
    在线课堂小项目
    在线课堂后端代码梳理
    .net调试exe或dll文件的反编译工具:dnSpy
    dnSpy反编译调试工具如何调试dll文件
    当前标识(IZFKXM52396ECSZ\iusr_iis)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限。
    把Json字符串转化为对应的类
    SQL Server 2008 R2定期自动备份、自动删除过期备份文件【转】
    Java 将HTML转为XML E
    C# 将HTML转为XML E
    MySQL删除重复数据
  • 原文地址:https://www.cnblogs.com/yyzanll/p/4482449.html
Copyright © 2020-2023  润新知