我用 C 代码编写了一个 TCP 服务器应用程序,可以同时处理多个客户端连接。当服务器从一个客户端接收数据时,所有客户端都应该收到它。我使用 select() 来创建服务器和多个客户端之间的连接,但我不知道如何让所有客户端同时接收相同的数据,并且每个客户端都能够将数据发送到服务器。
read_option(fd) 是我在应用程序中使用的函数
while(1)
{
select (nfds+1, &readfds, NULL, NULL, &tv);
if (FD_ISSET (sd, &readfds))
{
len = sizeof (from);
bzero (&from, sizeof (from));
client = accept (sd, (struct sockaddr *) &from, &len);
if (client < 0)
{
continue;
}
if (nfds < client)
nfds = client;
FD_SET (client, &actfds);
fflush (stdout);
}
for (fd = 0; fd <= nfds; fd++)
{
if (fd != sd && FD_ISSET (fd, &readfds))
{
if (read_option(fd))
{
fflush (stdout);
close (fd);
FD_CLR (fd, &actfds);
}
}
}