读书人

问一个tcp + select 传输大数据的有关

发布时间: 2012-09-23 10:28:11 作者: rapoo

问一个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,尽管传就是了。。。别等客户端有确认了

读书人网 >C语言

热点推荐