Tag: ipc

Unix域套接字如何区分多个客户端?

TCP具有元组对(IP地址/端口/types)来告诉另一个客户端。 UDP传递客户端IP和端口。 unix域如何跟踪不同的客户端? 换句话说,服务器创build一个绑定到某个path的套接字say / tmp / socket。 2个或更多客户端连接到/ tmp / socket。 底下发生了什么,跟踪client1和client2的数据? 我猜想networking堆栈在域套接字中不起作用,所以内核在这里做所有的工作? 有没有像IP协议格式和TCP / UDP格式的unix域协议格式? 域套接字数据报协议的格式是否在某处发布? 是每个unix不同还是像POSIX那样做标准化呢? 感谢任何照明。 我找不到任何解释这一点的信息。 每个来源只是掩饰如何使用域套接字。

去进程间通信

我正在写一个负载平衡的服务器系统。 负载均衡服务器将与多个应用程序服务器进行通信并处理请求。 这些服务器既可以在同一台机器上运行,也可以在networking上运行。 我已经想出了networking,但现在我需要find一个负载均衡器与本地应用程序服务器进行通信的最佳方式。 使用localhostnetworking似乎远非最佳。 我试图通过shmget和shmat系统调用共享内存,但没有find任何工作示例,并且syscall包也完全没有logging。 有人能给我提供一个如何使用这些调用或在Go上工作的一个现实的替代scheme来做IPC的例子吗?

等待进程,直到所有subprocess完成?

我有一个创build两个或多个subprocess的主进程,我希望主进程等到所有subprocess完成其操作并退出? # main_script.py p1 = subprocess.Popen(['python script1.py']) p2 = subprocess.Popen(['python script2.py']) … #wait main process until both p1, p2 finish …

Android操作系统中有哪些IPC机制?

请问任何人请告诉我什么是所有的IPC机制,目前在Android。 据我所知: 1)意图, 2)粘合剂。

消息队列在linux中是否过时?

我最近在Linux上一直在玩消息队列(System V,但是POSIX应该也可以),而且对于我的应用程序来说它们看起来非常完美,但是在阅读了Unix编程的艺术之后,我不确定它们是否真的是一个好select。 http://www.faqs.org/docs/artu/ch07s02.html#id2922148 System V IPC的高层消息传递层已经基本没有使用。 由共享内存和信号量组成的较低层在需要在同一机器上运行的进程之间进行互斥locking和一些全局数据共享的情况下仍然具有重要的应用。 这些System V共享内存设备演变成POSIX共享内存API,在Linux,BSD,MacOS X和Windows下支持,但不是经典的MacOS。 http://www.faqs.org/docs/artu/ch07s03.html#id2923376 System V IPC设施存在于Linux和其他现代Unix中。 但是,由于它们是遗留function,所以不经常使用。 到2003年中,Linux版本仍然存在漏洞。 似乎没有人愿意解决这些问题。 在更新的Linux版本中,System V消息队列仍然是错误的? 我不确定作者是否意味着POSIX消息队列应该正常? 似乎socket是几乎所有东西(?)的首选IPC,但我不明白用socket或其他方法实现消息队列将会如何简单。 还是我想太复杂? 我不知道是否与embedded式Linux相关?

使用哪种Linux IPC技术?

我们仍然处于项目的devise阶段,但是我们正考虑在embedded式Linux内核上使用三个独立的进程。 其中一个过程是一个通信模块,通过各种介质处理与设备之间的所有通信。 其他两个进程将需要能够通过通信过程发送/接收消息。 我正在评估Linux提供的IPC技术; 其他进程将发送的消息大小也不相同,从debugging日志到大约5 Mbit速率的stream媒体。 而且,媒体可以同时stream入和stream出。 你会为这个应用程序build议哪种IPC技术? http://en.wikipedia.org/wiki/Inter-process_communication 处理器运行在400-500兆赫左右,如果这改变了一切。 不需要跨平台,Linux才行。 在C或C ++中的实现是必需的。

跨平台IPC

我正在寻找可能的IPC机制的build议是: 跨平台 (Win32和Linux至less) 使用C ++以及最常用的脚本语言 (perl,ruby,python等)很容易实现。 最后,从编程的angular度来看简单易用 ! 我的select是什么? 我在Linux下进行编程,但是我希望将来可以写入其他操作系统。 我想过使用套接字,命名pipe道或类似于DBus的东西。

系统V IPC与POSIX IPC

System V IPC和POSIX IPC什么区别? 为什么我们有两个标准? 如何决定使用哪些IPCfunction?

IPC的性能:命名pipe与套接字

每个人似乎都认为命名pipe道比套接字IPC更快。 他们快多less? 我更喜欢使用套接字,因为它们可以进行双向通信,而且非常灵活,但是如果数量相当多的话,它会select速度而不是灵活性。

Linux中的multithreading信号处理

在Linux中,当一个程序(可能有多个线程)接收到SIGTERM或SIGHUP信号时会发生什么? 哪个线程拦截信号? 多个线程可以得到相同的信号? 是否有一个专门处理信号的专用线程? 如果不是的话,在处理信号的线程中会发生什么? 信号处理程序完成后,执行过程如何恢复?