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指针。
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指针。
相关文章推荐
- Debug Assertion Failed! File: isctype.c Line: 56 Expression (unsigned) (c+1) <=256
- C++ error:Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead->nBlockUse)
- Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead->nBlockUse)
- <BEA-000386> <Server subsystem failed. Reason: java.lang.AssertionError: java.lang.reflect.Invocatio
- opencv error:assertion failed<src.cols>0&&src.rows>0>in unknown function
- <compilation debug="true" targetFramework="4.0">的解决
- android Error:Execution failed for task 'xxxxx:mergeDebugResources'. > Crunching Cruncher ic
- xcb_xlib.c:50: xcb_xlib_unlock: Assertion 'c->xlib.lock' failed
- C# VS2010发布问题---<compilation debug="true" targetFramework="4.0">
- 第三十篇:关于( y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0]) )报错
- FAILED: ParseException line mismatched input '<EOF>' expecting StringLiteral near 'by' in
- <Android> Failed to pull selection 解决
- <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.NullPointerException
- 关于Android Studio导入.9图片报 ':app:mergeDebugResources'. > Some file crunching failed, see logs for detai
- C++类型转换运算符之const_cast<newtype>(expression)
- Weblogic Console Fails to Start Managed Servers With<BEA-000286> <Failed to invoke startup class
- Error:Execution failed for task ':app:mergeDebugResources'. > [style/AppTheme] E:\AndroidSpace\BaseP
- ros gmapping 运行错误:Assertion 'beams<LASER_MAXBEAMS' failed>
- 【android初学日志】Test run failed: Test run incomplete. Expected 1 tests, received 0<二>
- 解决 debug模式下 的 56 Expression: (unsigned)(c + 1) <= 256