当前位置:  技术问答>linux和unix

建立多线程的服务器···

    来源: 互联网  发布时间:2016-09-22

    本文导语:  不废话,直接上代码: void * talk_to_client(void *data) {       int new_server_socket = (int)data;       char buffer[BUFFER_SIZE];       bzero(buffer, BUFFER_SIZE); MYSQL db;/*connector*/ MYSQL_RES * result;/*result buffer*/         MYS...

不废话,直接上代码:
void * talk_to_client(void *data)
{
      int new_server_socket = (int)data;
      char buffer[BUFFER_SIZE];
      bzero(buffer, BUFFER_SIZE);
MYSQL db;/*connector*/
MYSQL_RES * result;/*result buffer*/
        MYSQL_ROW row;/*one row of the result*/
        int i;
        /*初始化mysql*/
        if(mysql_init(&db)==NULL)
{
        fprintf(stderr,"Fail to initialize the db.n");
        return -1;
        }
        /*连接数据库*/
        char host[32] = "localhost";
        char user[32] = "root";
        char passwd[38] = "123456";
        char dbc[32] = "mysql";
        char getDate[1024];
        char id[2000];
        char s[2000];
        memset(getDate,0,1024);
        if (NULL == (mysql_real_connect(&db,host,user,passwd,dbc,0,NULL,0)))
        {
         fprintf(stderr,"Connect to mysql Error:%s!",mysql_error(&db));
         return -1;
        }
        char str[2000];char str1[2000];
char Where_SQL[]="SELECT d.user_id,u.email,d.domain,d.status,v.* FROM domain_vip_status AS v, domains AS d, users AS u WHERE d.id = v.domain_id AND u.id = d.user_id AND d.grade != 'Free' ORDER BY vip_ended_at, email";
//scanf("%s",str1);   
strcat(str,Where_SQL);
//strcat(str,str1);
        if(mysql_query(&db,str)!= 0)    
        {  
          fprintf(stderr,"Fail to query the db for information.n");
          return -1;
        }
        /*获得查询结果*/
        if ((result = mysql_store_result(&db)) == NULL)
        {
          fprintf(stderr,"Fail to get the result.n");
          return -1;
        }
        /*fetching each row*/
        while((row=mysql_fetch_row(result))!=NULL)
{
                puts("================================================");
      printf("user_id: %sn",row[0]);
        printf("email: %sn",row[1]);
      printf("domain: %sn",row[2]);
        printf("status: %sn",row[3]);
      printf("domain_id: %sn",row[4]);
      printf("vip_started_at: %sn",row[5]);
              printf("vip_ended_at: %sn",row[6]);
      puts("================================================");   
        }
       // mysql_free_result(result);
       // mysql_close(&db);
       // return 0;
      
char m1[]="user_id:";char m2[]=" email:";char m3[]=" domain:";char m4[]=" status:";char m5[]=" domain_id:";char m6[]=" vip_started_at:";char m7[]=" vip_ended_at:";  

        memset(buffer,0,500);
        sprintf(buffer,"%s%sn%s%sn%s%sn%s%sn%s%sn%s%sn%s%sn",m1,row[0],m2,row[1],m3,row[2],m4,row[3],m5,row[4],m6,row[5],m7,row[6]);
printf("%sn",buffer);
}
      send(new_server_socket,buffer,strlen(buffer),0);        
      bzero(buffer,BUFFER_SIZE);
    //接收客户端发送来的信息到buffer中
    int length = recv(new_server_socket,buffer,BUFFER_SIZE,0);
    if (length 

    
 
 

您可能感兴趣的文章:

  • 如何一次把建立的线程全结束?
  • 用pthread_create建立线程后如何让线程运行的函数在create完了之后才实际运行 相当与windows下的CREATE_SUSPENDED ??
  • linux 驱动中,如何建立一个普通线程?
  • 在线等待:用子线程与ORACLE数据库建立连接的问题。
  • 怎么循环建立多个线程
  • 调用同一个函数建立的多个线程,如何使用函数的数据?
  • 在main()中调用同一个函数建立多个线程,此函数中定义的数据在多线程中如何使用?
  • 如何在类中建立线程
  • 为什么我建立了一个线程后窗口上其它按钮就无法响应了。(高分求救)
  • 如何建立网络通信线程?
  • 怎样在linux下建立一个PPP服务器,并在另一台机子上通过pppd来建立连接呀?
  • 请问在linux中怎么来建立ftp和web服务器,怎么建立和windows的局域网
  • 用windows客户机登陆Linux服务器不能建立建立文件夹????[img=http://forum.csdn.net/PointForum/ui/scrip
  • 开发板上建立一个nfs服务器
  • 服务器8G内存,怎样建立swap分区?
  • 如何建立一个邮件服务器?
  • 开发板建立nfs服务器
  • 如何建立svn服务器呢?
  • 问一下,Solaris中建立的FTP服务,在服务器上有缓存吗?
  • solaris8下如何建立FTP服务器?
  • 服务器与客户端建立socket连接,如何获得端口号.谢谢
  • 大家好!如何在UNIX环境下建立WEB服务器?用什么软件?
  • 我想在Fedora 3上建立自己的(Qmail)邮件服务器.....
  • 请教大家linux下建立视频的服务器几个问题
  • linux 下怎么样建立FTP服务器?
  • 示助:Linux作服务器建立网络电台
  • RTSP协议,客户端想与服务器端建立一个握手机制,应该怎么做.
  • linux 的http服务器的建立
  • 建立的ftp服务器,在其他机器上不能访问,为何?
  • 100分求:服务器8G内存,怎样建立swap分区?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Redhat/Centos下rpmbuild命令从spec文件或者tar包建立rpm
  • 如何在Red Hat上建立FTP服务 并且建立FTP一个用户
  • 怎么建立.alias文件?在哪里建立这个文件?
  • 很多服务都吧监听同时建立在特定ip和广播ip上,但是使用ssh转发时,发现没法建转发建立在广播ip上
  • 只给一个目录路径,怎样再在其下建立一个新的目录(给定目录名),然后再在其下建立一个新的文件(给定文件名)?
  • unix下获得文件的建立时间
  • linux系统中建立一个用户专门用来修改系统时间怎么做?
  • 哪个DOS命令可以建立一个空文件?
  • 用户ID的建立
  • 建立用户的问题
  • 如何建立虚拟主机
  • 怎么样在 dos 系统下 批量的建立目录?
  • 请问如何建立“目录的快捷”档?
  • 如何建立批处理?
  • 新手:unix下建立文件的命令?
  • 在pxa255建立linux2.4的系统,需要哪些补丁啊?
  • Linux用什么命令建立一个.cpp文件?
  • 什么操作系统能建立文件名大于256的文件
  • centos如何建立wifi热点呢?
  • tar 在创建tar文件的号死后如何不建立目录层次?
  • php实现建立多层级目录的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3