我现在要实现一个应用程序同时访问多个服务器(10个左右),用套接字编程,我的想法是创建多个客户端实例,然后分别在各自的连接上传输数据。还有其它的方法吗?请大家给个思路。

解决方案 »

  1.   

    每个线程开一个socket,分别连不同的服务器
      

  2.   

    使用多线程实现链接多个服务器,每个线程开一个socket连接一个服务器,此方法应该可行.
      

  3.   

    定义类似的这样的结构
    struct CONNSVR
    {
        CString sIP;
        int     nPort;
        CWnd    *pWnd;  //用于传递回显
    };
    线程
    DWORD WINAPI ThreadConnectSvr(LPVOID lParam)
    {
        CONNSVR *pSvr = (CONNSVR *)lParam;
        创建你的socket连接到服务器.操作在这里完成
         SOCKET sock = socket(AF_INET,SOCK_STREAM,0);
        sockaddr_in sin;
        ....
        connect(sock,..);
            
    }
    在UI线程里面开启你的线程 一个服务器对应一个线程就是了
      

  4.   

    只要实例10个SOCKET即可,分别connect,以后你想怎么发就怎么发,单线程循环,多线程都可以.
      

  5.   

    用WSAAsyncSelect 异步非阻塞模式
    1个实例,起10个socket,共用1个线程 over~