diff --git a/X. NU/custom/mach_ipc/client_server_NSConnection/Makefile b/X. NU/custom/mach_ipc/client_server_NSConnection/Makefile new file mode 100644 index 0000000..72de9e1 --- /dev/null +++ b/X. NU/custom/mach_ipc/client_server_NSConnection/Makefile @@ -0,0 +1,15 @@ +CC = clang +CFLAGS = -framework Foundation + +all: client server + +client: client.m + $(CC) $(CFLAGS) client.m -o client + +server: server.m + $(CC) $(CFLAGS) server.m -o server + +clean: + rm -f client server *.o + +.PHONY: all clean \ No newline at end of file diff --git a/X. NU/custom/mach_ipc/client_server_NSConnection/client.m b/X. NU/custom/mach_ipc/client_server_NSConnection/client.m new file mode 100644 index 0000000..1dbfc47 --- /dev/null +++ b/X. NU/custom/mach_ipc/client_server_NSConnection/client.m @@ -0,0 +1,17 @@ +#import + +int main(int argc, char *argv[]) { + @autoreleasepool { + if (argc != 2) { + NSLog(@"Usage: %s ", argv[0]); + return 1; + } + + NSConnection *connection = [NSConnection connectionWithRegisteredName:@"com.crimson.message_service" host:nil]; + id server = [connection rootProxy]; + + NSString *message = [NSString stringWithUTF8String:argv[1]]; + [server handleMessage:message]; + } + return 0; +} diff --git a/X. NU/custom/mach_ipc/client_server_NSConnection/server.m b/X. NU/custom/mach_ipc/client_server_NSConnection/server.m new file mode 100644 index 0000000..19ffccd --- /dev/null +++ b/X. NU/custom/mach_ipc/client_server_NSConnection/server.m @@ -0,0 +1,22 @@ +#import + +@interface MessageServer : NSObject +- (void)handleMessage:(NSString *)message; +@end + +@implementation MessageServer +- (void)handleMessage:(NSString *)message { + NSLog(@"Received: %@", message); +} +@end + +int main() { + @autoreleasepool { + MessageServer *server = [[MessageServer alloc] init]; + NSConnection *connection = [NSConnection defaultConnection]; + [connection setRootObject:server]; + [connection registerName:@"com.crimson.message_service"]; + [[NSRunLoop currentRunLoop] run]; + } + return 0; +}