我需要在客户端和服务器之间设置本地 IPC。这是单服务器多客户端的情况,需要双向交换数据。客户端是发送命令选项的命令,服务器获取数据并将其发送给客户端。客户端在控制台上打印从服务器接收到的输出。
命令发送的数据很小,但服务器发送到命令的数据很大(~11Mb)。Windows 中的现有设计使用命名管道以 65 KB 的块发送数据。服务器需要同时将数据发送到多个命令客户端,因为从不同的终端同时执行具有不同选项的命令是很常见的。
我省略了 FIFO,因为来自多个进程的数据可以交错处理大于 4096 字节的消息。如果我错了,请纠正我。
考虑到以下两个标准,哪个是更好的选择,POSIX 消息队列还是 unix 域套接字?
如果您需要更多详细信息,请告诉我。
问候, 罗希尼·钱德拉
听起来你想要一个插座。使用bind在服务器上设置套接字,然后当每个客户端连接到它时,服务器可以fork来单独处理每个客户端,或者使用select来处理客户端。分叉通常更简单:
int sock = create and bind the socket to any port
while (1) {
int client = accept(sock);
pid_t pid = fork()
if (pid == 0) {
// Handle client command
exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |