qq_17482331 2016-04-07 12:43 采纳率: 0%
浏览 1783

0x101bb6ca (msvcr100d.dll) 处有未处理异常

两个线程的服务器程序,当两个客户端对其发送数据时,提示:server35.exe 中的 0x101bb6ca (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突
贴出代码如下:
#include
#include
#include
#include "mysql.h"
#include
#include
#include
#include
using namespace std;
#pragma comment(lib,"WS2_32.lib")
#pragma comment(lib, "libmysql.lib")
#pragma comment(lib,"wsock32.lib")

#define F_PATH "e:\VS2010_Project\location\location.txt"
DWORD WINAPI myfun1(
LPVOID lpParameter
);
DWORD WINAPI myfun2(
LPVOID lpParameter
);
static SOCKET s1,s2;
/*static char sztext[100];
static FILE f1;
static sockaddr_in addr,addr2;
static char *p1,*p2;
static char a1[20],a2[20];
static MYSQL mysql;
/
static sockaddr_in addr,addr2;
char query[150];

int main()
{
WSADATA data;
WORD w=MAKEWORD(2,0);
//char sztext[40];
HANDLE h1,h2;
::WSAStartup(w,&data);
SOCKET s;
s=::socket(AF_INET,SOCK_STREAM,0);
//sockaddr_in addr,addr2;
int n=sizeof(addr2);
addr.sin_family=AF_INET;
addr.sin_port=htons(6000);
addr.sin_addr.S_un.S_addr=INADDR_ANY;
::bind(s,(sockaddr*)&addr,sizeof(addr));
::listen(s,5);
printf("服务器已经启动\r\n");
// f1=fopen("location.txt","w");
//mysql_init(&mysql);
while(true)
{
s1=::accept(s,(sockaddr*)&addr2,&n);
h1=::CreateThread(NULL,0,myfun1,NULL,0,NULL);
::Sleep(100);
//printf("有用户连入网络!\r\n");
s2=::accept(s,(sockaddr*)&addr2,&n);
h2=::CreateThread(NULL,0,myfun2,NULL,0,NULL);
::Sleep(100);
::CloseHandle(h1);
::CloseHandle(h2);
//printf("又有用户连入网络!\r\n");
}

::closesocket(s);
//::closesocket(s1);
::WSACleanup();
if(getchar())
{
return 0;
}
else
{
::Sleep(100);
}

}
DWORD WINAPI myfun1(LPVOID lpParameter)
{
static char sztext[100];
//static FILE *f1;
//static char *p1[10];
static char a1[20],a2[20];
static MYSQL mysql;
//char *p1=new char[10];

if(s1!=NULL&&strlen(sztext)==0)
{
printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
}
//printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
::recv(s1,sztext,sizeof(sztext),0);
printf("%s\n",sztext);
strtok(sztext,":");
//p1=strtok(NULL,":");
strcpy(a1,strtok(strtok(NULL,":"),","));
//strcpy(a1,strtok(p1,","));
strcpy(a2,strtok(strtok(strtok(NULL,":"),","),","));
// /*fprintf(f1,a1);
// fprintf(f1,",");
// fprintf(f1,a2);
// fprintf(f1,"\n");
mysql_init(&mysql);
if(!(mysql_real_connect(&mysql,"localhost","assking","1992110328","LBS",0,NULL,0)))
{
printf("Error connecting to database:%s\n",mysql_error(&mysql));
}
else
{
printf("Connected...\n");
}
sprintf(query,"insert into loca(LO,LA)values('%s','%s')",a1,a2);

if(mysql_query(&mysql, query)) //执行SQL语句
{
printf("Query failed (%s)\n",mysql_error(&mysql));
}
else
{
printf("Insert success\n");
}
mysql_close(&mysql);
::closesocket(s1);
return 0;
}
DWORD WINAPI myfun2(LPVOID lpParameter)
{

static char sztext[100];
//static FILE *f1;
//static char *p2[10];
static char a1[20],a2[20];
static MYSQL mysql;
//char *p2=new char[10];
if(s2!=NULL&&strlen(sztext)==0)
{
printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
}
//printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
::recv(s2,sztext,sizeof(sztext),0);
printf("%s\n",sztext);
strtok(sztext,":");
//p2=strtok(NULL,":");
//strcpy(a1,strtok(p2,","));
strcpy(a1,strtok(strtok(NULL,":"),","));
strcpy(a2,strtok(NULL,","));
// /*fprintf(f1,a1);
// fprintf(f1,",");
// fprintf(f1,a2);
// fprintf(f1,"\n");
// mysql_init(&mysql);
if(!(mysql_real_connect(&mysql,"localhost","assking","1992110328","LBS",0,NULL,0)))
{
printf("Error connecting to database:%s\n",mysql_error(&mysql));
}
else
{
printf("Connected...\n");
}
sprintf(query,"insert into loca(LO,LA)values('%s','%s')",a1,a2);

if(mysql_query(&mysql, query)) //执行SQL语句
{
printf("Query failed (%s)\n",mysql_error(&mysql));
}
else
{
printf("Insert success\n");
}
mysql_close(&mysql);
::closesocket(s2);
return 0;
}

  • 写回答

2条回答

  • oyljerry 2016-04-07 14:01
    关注

    直接编译器调试对应错误的代码行数 一般是指针问题

    评论

报告相同问题?

悬赏问题

  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。