[高手请入内!!]请评估一下支持多端口连接和通信的HTTP Server的实现方案可行不可行?
帮忙看一下下面的方案可不可行:
目标:实现一个HTTP Server
要求:
1. 支持最多8个端口的连接和通信
2. 其中一个端口在recv的时候,有可能是分多次接收数据的。
假如说在第n次接收数据之前,刚好又来了一个别的端口的连接请求。那么这个时候必须先处理这个连接请求,然后再接收上面的第n次的数据。也就是不管连接请求还是数据传输请求,都遵循先到先处理的原则。
for (i = 0; i<8; i++)
{
sock_fd[i] = socket (…..);
bind(….);
listen (…..);
ioctlsocket(sock,FIONBIO,&ul);
FD_ZERO (&readfd.)
FD_SET (sock_fd[i], readfd);
}
while (1)
{
backup and set readfd;
Select (……..);
for (i = 0; i<8; i++)
{
if(FD_ISSET(sock_fd[i],&readfd)
{
Accept_fd[i] = accept (sock_fd[i], ….);
If (Accept_fd[i] > 0)
{
FD_SET(Accept_fd[i]);
}
}
If (FD_ISSET(Accept_fd [i],&readfd)
{
Recv (Accept_fd [i], buff, …..);
}
}
}