socket连接多客户端有关问题,怎么用一个线程与多个客户端连接起来,求指教

socket连接多客户端问题,如何用一个线程与多个客户端连接起来,求指教啊
今天用一客户端一线程的方法解决了一个服务器对应多个客户端,但是老大又说不能创建如此多的线程,于是让我用select函数改成几个线程就能完成几十个客户端连接上来并传输文件的。。。
今天看了一天的select函数,select的功能不是监控很多的套接字是否有要读的或要写的东西吗?也就是它管理着几十个套接字然后任何一个套接字要读写都会告诉它,然后他把这个套接字交给线程处理吗?可最终还是要很多线程啊。。。是不是我理解错误了,求指教。。。
socket 多线程 select

------解决方案--------------------
select函数返回告诉你有某个套接字可以读或者写了或者连接或者断开等
然后用FD_ISSET(s,*set)检查某个套接字是否有信号
也就是遍历你所管理的那么多套接字,每个套接字用FD_ISSET测试下,如果返回true,判断套接字的状态,针对这个套接字进行读或者写或者连接和关闭。只需要1个线程,当然也可以多个线程同步处理,不会需要几十个线程那么多。

select模型我也没用过,看了书,然后这么理解的。

------解决方案--------------------
十几个客户可能是同步上传文件么?

select 函数只是监听是否有准备号的提套接字来进行I/O操作(个人理解)。

应该是多可客户上来,都是某一个线程进行I/O操作
------解决方案--------------------
一个线程可以在发现有读写请求后自己进行处理, 处理完了在继续下一轮的查询.
不是说有几十个客户端同时在传文件, 就需要每个客户有单独的线程才能够随时响应的. 如果你只有一个 CPU, 一个线程在操作的时候, 其余的线程一样在等待的.
不用担心客户端感觉到的服务器响应是否及时的问题, 操作系统会为你缓冲客户端上传上来的数据的. 通常来说, 你写入文件的速度会比网络传输的速度快, 所以, 即使只有一个线程, 它也是随时等待在端口查询上的. 真正进行写入文件操作的时间并不多, 客户端不会感觉延迟.
------解决方案--------------------
#9回复(我的浏览器楼层引用不能用)
你的例子,每个socket和相应的文件名肯定要一一对应。
在任何服务器的模型中,每种资源都必须有效控制,包括每个socket,每个buff缓冲区等,必须用数组或者链表或其他数据结构存贮。