具有多个tcp连接的多个线程

时间:2012-12-13 02:57:06

标签: c linux tcp network-programming

我已经问过这个问题,但是在SCTP环境中,我没有得到任何答案所以我会在这里问tcp因为我可以在两个协议中使用相同的设计(几乎)

假设主程序打开了多个tcp连接,我有多个线程,例如4个。

应用程序要求我以循环方式使用全部4个连接,但有时我需要通过一个特定的TCP连接发送,你可以说这是一个基于tcp的路由,所以我想的是创建4主程序中的tcp连接,带有以下文件描述符,

fd1
fd2
fd3
fd4

并与4个线程共享这些文件描述符,因此每个线程当然可以通过锁发送到这些fds中的任何一个,这是个好主意吗?如果不是你的建议么?

如果路由==某事,下面的伪代码将发送到tcp_fd [0],如果未指定路由,则发送到任何fds。环境是linux和C.

main()
{

tcp_fd[0] = create_connections(1);
tcp_fd[1] = create_connections(3);
tcp_fd[2] = create_connections(3);
tcp_fd[3] = create_connections(3);

create_threads(function_send, tcp_fd)

}


function_send(tcp_fd[])
{
get_data_from_fifo();

if(routing==something)
send_tcp_msg(tcp_fd[0],round_robin_disabled);
else
send_tcp_msg(to any tcp_fd,round_robin_enabled);


}

0 个答案:

没有答案