首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问一个tcp + select 传输大数据的有关问题?有经验的进

2012-09-23 
问一个tcp + select 传输大数据的问题?有经验的进!代码大致结构:[codeC/C++]//声明存储数据的链表node*my

问一个tcp + select 传输大数据的问题?有经验的进!
代码大致结构:

[code=C/C++]

//声明存储数据的链表
node*   mySqlData;

int   main()
{
            int   sock=...;
            bind(...);
            listen(...);
            while(1)
            {
                        ...
                        ret   =   select(maxsock   +   1,   &fdsr,   NULL,   NULL,   &tv);
                        ...

                        while(   链表   !=   NULL)   {
                        tem   =   *(int*)链表-> data;//获取链表中存储的已连接客户端

                        if   (   tem   !=   0)
                        {
                                  if   (FD_ISSET(tem,   &fdsr))//检测当前连接是否有数据
                                  {
                                        //接收数据
                                        ret   =   recv(..,   ..,   ...,   ...);
                                        switch()
                                        {
                                                      //   接受到客户端,查询数据库,存储在mySqlData结构中
                                                      //   一条sql大概查询500条数据,每条2000个char,总大小500*2000char
                                                      //然后我这里如何将这500条数据传输到客户端?
                                                      //我的方法,一次传一条,等客户端有确认,继续传输500条中下一条,但这样,如果有
                                                      //多个客户端时,就有数据同步问题发生,而且就算同步,在一条传完后,还是继续会出现
                                                      //数据混乱的情况。要是将这个node*   mySqlData;声明为局部的,然后用全局链表保存他们,


                                                      //然后注意数据同步是可以解决问题,就是10   个客户就是10*500*2000保存在服务器内存                                               //了。各位大侠都用什么办法解决的?平台是unix   c

                                                     
                                        }
                                  }
                        }
            }
       

}


[/code]

[解决办法]
直接使用TCP,尽管传就是了。。。别等客户端有确认了

热点排行