c - 套接字编程 - 具有客户端和服务器代码的进程

标签 c sockets

我正在编写一个套接字程序,它由一堆从属进程组成,这些从属进程将位于计算机集群中的每台机器上,而主进程指示它们将本地文件移动到远程节点上的远程从属进程。这些从进程的主要任务是从本地硬盘读取文件并将它们传输到其他机器上的其他从进程。我希望将监听文件数据和发送内置于单个进程中的文件数据的功能结合起来。

是否可以在同一个进程中同时拥有发送位和接收位?

//I want this to send a connect() request to every other slave node
initialize_Connections();

//Have an accept() call for accepting the connection requests from the other nodes
accept_Connections();

是否有可能完成这样的事情?我查看了 initialize_Connections()accept_Connections() 调用之间的 fork 过程(即子进程调用 initialize_Connections() 并且父进程负责 accept_Connections( )) 但由于某些神秘的(对我来说)原因,这并没有奏效。

在这种情况下可以使用非阻塞的 connect() 和 accept() 吗?

最佳答案

使用线程不是强制性的,您只需要设置一个监听套接字,为每个传入连接触发一个套接字,并为与其他客户端的连接设置一组套接字,并在每个套接字上为事件池/选择...

关于c - 套接字编程 - 具有客户端和服务器代码的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154075/

相关文章:

WINDOWS 上的 Python flask 双栈(ipv4 和 ipv6)

c - 在将其转换为排序数组时找到堆化数组,交换总数是最大可能的

c - for 循环不会在函数内循环 - C

c - 在 Mac OS X 10.11 上,如果与 .cu 扩展名一起使用,nvcc 不喜欢复杂

c - C 中的 TCP 服务器 - 端口总是在增加?

sockets - socket通信中send()和recv()的行为

c - BGI错误,如何解决?

c - 使用 C 发送原始互联网数据包

Java 绑定(bind)异常

c++ - 服务器支持多个客户端监听吗?