我现在做一个服务器,  连接两个客户端,从一个客户端接收数据, 向另一个客户端发送数据。有什么简单又有效的办法呢?
在一个客户端发送和接收数据我已经会了。

解决方案 »

  1.   

    senddata(clientsocket,data,datalen)
      

  2.   

    谢谢 Wind_Runner  ,我现在还有两个疑问。由于我对服务器程序只是 知道一些。但不深入。我现在的疑问是:
       1. 对于这两个客户端,我有什么办法区分不同的客户端呢。最好的办法是多线程吗? 希望能说的具体点。因为我的水平有限。
       2. 您觉得对于我的这个需求用阻塞模式好还是非阻塞模式好呢?
        
      

  3.   

    那我怎么区分 这两个客户端呢? 比如说一个 A  一个B。 从 A 里 接收数据。 发送到 B 客户端。   我怎么知道哪个是A 哪个是B呢?
      

  4.   

    大家帮帮忙啊。 我用  m_sClient = accept(m_sServer,(sockaddr FAR*)&addrClient, &addrClientlen);   接收数据的时候。  m_sClient 可能会指向两个不同的客户端。  我怎么样才能知道哪个是 A 客户端哪个是 B 客户端呢?
      

  5.   

    使用MAP,把client帐号好socket关联起来,这样你想发的时候只要在map里面找这个client拿里面的socket发就好了
      

  6.   

    用map记录不同的client,map里面保存接待这个client的socket,这样想向它发数据的时候用client的标识在map里面找到拿出socket来发数据了.
      

  7.   

    m_sServer= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    sClient = accept(sServer,(sockaddr FAR*)&addrClient, &addrClientlen);PaulWu001 你好。 你是说把这两个关联起来吗?
      

  8.   

    PaulWu001  我知道你的意思了。 你的意思是   客户端在 发数据之前 先告诉我是哪个客户端。 比如是A 。 我把 A 和socket 用 map记录下来。 再把 B 和socket 记录下来。以后就知道哪个是 A 哪个是B 了。
      

  9.   

    1、接收到数据后,用send/WSASend发数据,明白了?
    2、楼主的总技术分为0,要么是刚来,要么是从没帮助过别人。
    3、楼主的结帖率为33.33%,只知道无偿索取。
      

  10.   

    谢谢楼上的提醒。我以后会注意这个问题的。我也是刚来不久。以后会多加注意/因为我第一次写 服务器。有些不太熟练。我的意思是这样的。 就是我从A 客户端不断的 收到数据后。 会把每条数据 进行处理。 然后 把异常的数据 发送给 B客户端。  我想到一个办法。不知道行不行。 就是我接收到A的数据后 放到一个接收数据的队列中。 然后依次处理A的数据,处理完一条删一条。 需要发送给B 客户端的就发送。  这样可以吗?