socket 服务器给指定的客户端发消息该怎么办

socket 服务器给指定的客户端发消息该怎么处理
   多个客户端之间进行通讯,通过服务器转发的形式,
   现在客户端1请求向客户端2发送消息, 先把消息发送到服务器, 服务器怎么才能把消息转发到客户端2而不是转发给客 户端3或者其他人。(TCP协议下)send()函数好像不能指定发送目的地的信息。
   请高手指教下该如何处理!

------解决方案--------------------
服务器端accept时有一个参数,struct sockaddr* addr,这个参数返回的就是connect的客户端的地址,包括IP地址和端口,既然知道了IP地址,两个客户端就可以直接通信。如果要通过服务端转发,服务端接收到转发信息时在发给另一端就可以了,accept时返回的就是用于通信的socket,一个客户端对应一个socket,你要保存好

------解决方案--------------------
最好的方法是:每一客户端用唯一的ID来标示, 就像QQ号一样, 在客户端连接服务器,发送自己的ID, 然后和相应产生的SOCKET进行绑定, 一个客户端向另一个客户端发送信息时,要求在数据包里包含对方的ID号。可以定义一个类型下列的数据结构对数据包进行封装:

type struct _sdata {
    int sourceID;//发送者自己的ID
    int destID; //接收者的ID
    char datainfo[1];//数据信息
}SDATA, *PSDATA;
------解决方案--------------------
套接字啊  每个客户端的套接字是不一样的 你都说了
int send(
  SOCKET s,
  const char FAR* buf,
  int len,
  int flags
);
就用s  只是你在接受的时候要用个容器保存好每个客户端的套接字,发送的时候对应的发生