亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2435 | 回復: 2
打印 上一主題 下一主題

服務器端查詢數(shù)據(jù)庫內(nèi)容發(fā)送到客戶端,客戶端接收不能正常退出 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-06-14 08:59 |只看該作者 |倒序瀏覽
客戶端代碼:
int recv_alluser(int fd)
{
        printf("---------------------好友列表--------------------\n\n";
        int read_len = 0;

        while (1)
        {
                char temp[MAX];
                memset(temp, 0, MAX);
//                sleep(1);
                read_len = read(fd, temp, MAX);//接收服務器發(fā)來的信息
                write(1, temp, strlen(temp));
                if (read_len < 0)
                {
                        printf("read user error\n";
                        break;
                }
                if (strcmp(temp, "end" == 0)//接收到end字符串結(jié)束程序
                {
                        return 0;
                }
        }
        return 0;
}

服務器端代碼:
int send_alluser(int fd)
{
        if (mysql_query(conn, "select * from user" != 0)
        {
                printf("mysql query alluser error %u:%s\n",mysql_errno(conn), mysql_error(conn));
                if (write(fd, "", 0) < 0)
                {
                        perror("write 0 error\n";
                        return -1;
                }

                return -1;
        }

        MYSQL_RES *result = mysql_store_result(conn);
        if (result == NULL)
        {
                printf("mysql query alluser result error %u:%s\n",mysql_errno(conn), mysql_error(conn));
                return -1;
        }
        MYSQL_ROW row;
        while ((row = mysql_fetch_row(result)))//把result里的信息發(fā)到客戶端
        {
                write(fd, "賬號:", 7);
                write(fd, row[0], strlen(row[0]));
                write(fd, "\t用戶名:", 11);
                write(fd, row[1], strlen(row[1]));
                write(fd, "\t狀態(tài):", ;
                write(fd, row[4], strlen(row[4]));
                write(fd, "\n", 1);       
        }
        mysql_free_result(result);
        char buf[10] = "end";
        if(write(fd, buf, 10) <= 0)//數(shù)據(jù)庫信息發(fā)送完畢,給客戶端發(fā)送end字符串
        {
                perror("write alluser end \n";
                return -1;
        }
        return 0;

}

到最后服務器把數(shù)據(jù)庫中信息發(fā)送完畢后然后發(fā)送end字符串,客戶端接收到end字符串后跳出while(1)循環(huán)運行下一個程序,運行結(jié)構(gòu)是能輸出end字符串,但是還是一直在等待,而且ctrl+c客戶端后,服務器端會一直顯示"write alluser end 。。。。。。,但是這個并沒有循環(huán)啊,在線等大牛解答

論壇徽章:
0
2 [報告]
發(fā)表于 2014-06-15 00:20 |只看該作者

                if (strcmp(temp, "end" == 0)//接收到end字符串結(jié)束程序
                {
                        return 0;
                }

沒看到這里有能退出的語句

論壇徽章:
0
3 [報告]
發(fā)表于 2014-06-15 00:21 |只看該作者
這里是網(wǎng)絡版塊。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP