//
//  MySimpleServer.m
//  nochange
//
//  Created by mac on 2024/7/21.
//

#import <Foundation/Foundation.h>


#import "MyScriptTask.h"
#import "XSHelper.h"
#import <UIKit/UIKit.h>
#import "IPhoneHertbeat.h"

#import "MySimpleServer.h"
#import "IosSystemCmd.h"
#import "MyAdServer.h"
#import "XSHackIos.h"
#import "MyAdTask2.h"
#import "XUDPServer.h"



void startSimpleServer(void) {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        // 初始化信号处理
        registerSignalHandler();
        NSLog(@"XS- start server");
        
        // 创建专用的串行队列
        dispatch_queue_t serverQueue = dispatch_queue_create("com.xzyshell.serverqueue", DISPATCH_QUEUE_SERIAL);
        
        // 在主队列初始化关键服务
        dispatch_async(dispatch_get_main_queue(), ^{
            [[IPhoneHertbeat sharedInstance] start];
            [[IosSystemCmd sharedInstance] start];
        });
        
        // 在服务器队列中处理服务器相关操作
        dispatch_async(serverQueue, ^{
            @autoreleasepool {
                // 初始化发送者ID
                // 启动日志
                pushIphoneLog(@"on start simple server!!!");
                
      
                
                // 完成日志
                pushIphoneLog(@"on start simple server -ok");
                
                // 服务器端
                // MessagePortServer *server = [[MessagePortServer alloc] init];
                // [server startServer];
                XUDPServer *udpserver = [XUDPServer sharedInstance];
                [udpserver start];
                // 移除显式运行NSRunLoop，让GCDAsyncUdpSocket在自己的队列中管理
                // NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
                // [runLoop addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
                // [runLoop run];
            }
        });
    });
}




