您的位置:首页 > 大数据 > 人工智能

debug assertion failed expression:(fh>=0 && ( unsigned) fh<(unsigned)_nhandl

2010-10-11 16:13 2016 查看
代码如下

server.c

----------------------------------------------------------------------------------------------------------

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <sys/types.h>

//#include <arpa/inet.h>

//#include <sys/socket.h>

//#include <unistd.h>

#include <fcntl.h>

#include <sqlca.h>

#include <Winsock2.h>

#pragma   comment(lib, "ws2_32.lib ")

#include "MyUser.h"

extern User* db_query_user(User*);

extern void db_connect();

extern void db_disconnect();

 /*服务器监听端口号 */

#define BACKLOG 10 /* 最大同时连接请求数 */

#define MAXDATASIZE 1024

int main()

{

    int server_sockfd,client_sockfd;    //sock_fd:监听socket;client_fd:数据传输socket

    struct sockaddr_in server_addr,client_addr;         

    int client_len,server_len;

    int port=4000;

    //char res_msg[MAXDATASIZE];

    char get_message[MAXDATASIZE];

    char send_message[MAXDATASIZE];

    //char userID[10];

    User usr;

    User pusr;

   

    //char* send_msg="you  have connected server !";

    int recvbytes;

    int i=2;

    WORD version;

    WSADATA wsaData;

    int ret;

    version=MAKEWORD(2,2);

    ret=WSAStartup(version, &wsaData);

    if(ret!=0){

        ExitProcess(-1);

    }

    if ((server_sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

    {

        perror("socket创建出错!");

        //exit(1);

    }

    server_addr.sin_family=AF_INET;

    server_addr.sin_addr.s_addr =inet_addr("192.168.100.94");

    //server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

    server_addr.sin_port=4000;

    server_len=sizeof(server_addr);

   

    if (bind(server_sockfd, (struct sockaddr *)&server_addr, server_len) == -1)

    {

        perror("bind出错!");

        //exit(1);

    }

    if(listen(server_sockfd, BACKLOG) == -1)

    {

        perror("listen出错!");

        //exit(1);

    }

   

    while(i>0)

    {

        i--;

        printf("Server waiting.../n");

       

        client_len = sizeof(client_addr);

        if ((client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_addr, &client_len)) == -1)

        {

            perror("accept出错");

            continue;

        }

       

       

       

        //if (send(client_sockfd, send_msg, strlen(send_msg), 0) == -1)

        //{

        //    perror("send出错!");

        //}

        if ((recvbytes=recv(client_sockfd,get_message, MAXDATASIZE, 0)) ==-1)

        {

            perror("recv出错!");           

            //exit(1);   

        }

        //get_message[recvbytes] = '/0';

       

        memcpy(&usr,get_message,sizeof(User));

        //memset(pusr,0,sizeof(User));

       

        db_connect();

        memcpy(&pusr,db_query_user(&usr),sizeof(User));

        db_disconnect();

       

       

        memcpy( (char*)send_message,(char*)&pusr , MAXDATASIZE);

        if (send(client_sockfd,send_message, sizeof(send_message), 0) == -1)

        {

            perror("send出错!");

        }

         

        close(client_sockfd);

        //exit(0);

       

    }

    return 0;

}

-------------------------------------------------------------------------------------

MyUser.h

----------------------

typedef struct user{   

    char name[20];

    char password[20];

    char id[10];

}User;

---------------------------------------------

 

User * db_query_user(User user)

这个是用proc写的程序。返回一个User指针。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐