2 longechuanren longechuanren 于 2016.01.13 21:15 提问

mfc Csocket客户端收报出现问题 150C

我写了一服务器和客户端服务器可以实现数据包的接受并对其数据进行相应的操作,
图片说明但是客户端收到数据后程序根据收到的数据进行处理时,就会中断
图片说明
图片说明
这是我接受数据包的代码和我对数据包类型的匹配,运行到注释的这些代码出就中断了,错误都一样

4个回答

enpterexpress
enpterexpress   2016.01.13 22:07

空指针

longechuanren
longechuanren 可以具体点么
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.01.13 22:14

操作了一个空的对象,好好检查一下

longechuanren
longechuanren 到不到呀
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.13 22:48

调试一下看看出错时,各变量的值。分析一下异常的可能原因!
一般来说,分析内存时要多分配一个单位,就是留字符串结束符 NULL。

还有可能是 Receive 函数内部出错了。

91program
91program 回复longechuanren: this,没有看到啊!
接近 2 年之前 回复
longechuanren
longechuanren 我调试了下,在进入函数后this指针空了,不知道怎么改
接近 2 年之前 回复
u010030181
u010030181   Rxr 2016.01.14 11:26

虽然你这好简单,但你这样贴一点代码,关键代码又不贴出来,瞎子摸黑~~~~
我也懒得看了,还是授人以渔吧。

既然你使用的是VS,那就应该好好利用这么强大的调试工具呐!!!!!
图片说明
图片说明
图片说明

附测试代码程序

 #include "stdafx.h"
#include <iostream>

using namespace std;

void func1()
{
    cout << "有问题函数, 函数1" << endl;
    char* p = NULL;
    *p = 100;

    cout << "此处应该有异常!";

}

void func2()
{
    cout << "函数2" << endl;
    func1();
}

void func3()
{
    cout << "函数3" << endl;
    func2();
}

void func4()
{
    cout << "函数4" << endl;
    func3();
}

void func5()
{
    cout << "函数5" << endl;
    func4();
}

int _tmain(int argc, _TCHAR* argv[])
{
    func5();
    return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!