c/s模式,网络连接设计的有关问题!给点思路

c/s模式,网络连接设计的问题!!!给点思路。
目前,做一个基于c/s模式得管理软件,就是服务器和很多客户机同在一个局域网内。服务器要对客户机控制。
      在服务端我定义了派生于CSocket的两个类,class   CAcceptSocket   (用于和客户机连接)和   class   CServerSocket(用于侦听),
    现在我只给每个类定义了一个对象。在服务机与客户机进行一对一的时候能控制好。
但是当有多台客户机和服务器进行连接的时候,class   CAcceptSocket得对象时候不是要定义一个数组,从而使服务器能够对每一个指定的客户机进行操作:比如对一号客户机发消息等等,这个怎么来实现?

ps:服务器的socket怎么来设置,才能够让服务器能对不同客户机实现具体操作呢。

------解决方案--------------------
应该是定义一个CAcceptSocket *的数组,然后动态创建CAcceptSocket对象吧。
------解决方案--------------------
typedef strcut _socks
{
CAcceptSocket accskt;
int sktno;
}socks,*psocks;
.
.
.
#include <vector>
.
.
.
std::vector <psocks> socksList;
.
.
.
psocks tmpskts;
serverskt.listen(...);
while(1)
{
tmpskts=new socks;
serverskt.accpet(tmpskts-> accskt);
tmpskts-> sktno=//自己给一个NO号;
socksList.puch_back(tmpskts);
}


...

void sendControl(char *buf,int sktno)
{
psocks tmp;
for(int i=0;i <socksList.size();i++)
{
tmp=socksList.at(i);
if(tmp-> sktno==sktno)
{
tmp-> accskt.send(buf);
return;
}
}
}

搞定

如果你觉得顺序查找的速度慢,可以建个HASH表
------解决方案--------------------
开个线程,用cserversocket进行监听,接到一个连接后,就把连接cacceptsocket放到一个链表中(可以用MFC提供的,也可以用STL里的list)。什么时候想要进行通信,就从链表里找出来就好了。


------解决方案--------------------
给出源码、文档说明