c - Can s 进程在两种不同类型的套接字上进行通信
问题描述
进程是否可以充当服务器并侦听两种不同类型的套接字(TCP unix 套接字和 TCP AF_INET 套接字),并且进程也可以充当客户端并打开两种不同类型的套接字(TCP unix 套接字和 TCP AF_INET 套接字)并连接到具有相应类型套接字的服务器。
我有两个进程,一个作为服务器,一个作为客户端,在同一台机器上运行。套接字是 Unix 流套接字类型。现在我希望我的服务器和客户端进程打开一对新的 TCP AF_INET 套接字并通过新的套接字对进行通信,同时保持先前(Unix 套接字)上的通信完好无损。
为此,我将在服务器上为 TCP AF_INET 服务器套接字启动一个新线程。在客户端,我还将为 TCP AF_INET 客户端套接字启动一个新线程。有没有可能有这样的系统。我将在 linux 操作系统上为此编写 ac 代码。
解决方案
是的。
服务器可以(应该)使用 select 函数来监控一组套接字;插座可以是不同类型的。然后服务器阻塞 select() 调用,唤醒东一个套接字上可用的任何可读数据。
客户端进程可能使用多个线程,每个线程都有自己的套接字与服务器通信。客户端也可以使用同一执行上下文(线程)中的所有套接字,但这取决于客户端应该执行的任务的性质。换句话说,这需要软件设计和架构。
推荐阅读
- typescript - Typescript – 设置数组界面中第一项和第二项的类型
- sql - 在 Toad/Oracle 中创建用于练习的数据库?
- android - Kotlin/Android:递归查找所有类型 T 的视图
- python - 将内存中的 OpenCV 图像写入 BytesIO 或 Tempfile
- php - dyld library not loaded - PHP, Laravel, Composer command line commands not working
- c# - (Unity C#) Directory.CreateDirectory() 不应该创建文件夹
- java - 返回 JSP 视图名称时让我的 Spring Boot 索引页面和控制器映射工作的问题
- php - 使用 PHP 优化执行时间
- python - Spark dataframe not adding columns with null values
- r - Find directory getting specific file