小编mah*_*esh的帖子

为什么不使用TCP/UDP,为什么碎片在IP上完成

我正在寻找为什么碎片在IP级别完成的原因,但为什么不在TCP/UDP上.

假设我的框架看起来像这样| MAC | IP | TCP |有效载荷| FCS.整个大小,如果说例如:1600.PathMTU发生在这里,为什么实现碎片@ IP级别是我的问题,为什么没有实现@ TCP/UDP级别/代码.

预先感谢.

c++ networking tcp ip-protocol

2
推荐指数
1
解决办法
2896
查看次数

为什么代码段对于同一程序的不同实例是通用的

我想知道为什么代码段对于同一程序的不同实例是常见的.

对于Eg:考虑程序P1.exe正在运行,如果正在运行P1.exe的另一个副本,则代码段对于两个正在运行的实例都是通用的.为什么会这样?

答案将受到高度赞赏.

提前致谢.

c c++ operating-system process

2
推荐指数
1
解决办法
1311
查看次数

为什么带有成员函数的Class的大小是1个字节..而成员函数是4个字节

我没有得到为什么带有成员函数的类的大小是1个字节.在下面的例子中,成员函数是4个字节.

class Test
{
    public:
            Test11()
            {
                int m = 0;
            };
};

int main() 
{
    Test t1;
    int J = sizeof(t1);
    int K = sizeof(t1.Test11());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这里J变为1字节,K变为4字节.如果K = 4,那么为什么类的大小不是4个字节而是显示1个字节

c++

2
推荐指数
1
解决办法
1672
查看次数

如何在VC++中禁用Windows TCP/IP堆栈[以编程方式]

我想知道如何在VC++中[以编程方式] 禁用 Windows TCP/IP堆栈.

我们正在使用winpcap进行一些原始套接字编程.因此,我们的应用程序不需要Windows TCP/IP堆栈,我们希望在应用程序启动时卸载它.

c++ networking tcp uninstall visual-c++

1
推荐指数
1
解决办法
2324
查看次数

如何将地址转换为函数指针到调用方法

我想在WaitAndCallFunc()函数中调用Test1()方法.

码:

typedef void (*func)();

void StartTimer(void* pFuncAddr);
void WaitAndCallFunc(void* pPtr);

void WaitAndCallFunc(void* pPtr)
{
    int i = 0;
    int nWaitTime = 3;

    while(1)
    {
        Sleep(1000);
    //  I want pPtr to call Test1 Function;
        if(i == nWaitTime)
            break;
    }

    _endthread();
}
void StartTimer(void* pFuncAddr)
{
    _beginthread(WaitAndCallFunc, 0, pFuncAddr);
}
void Test1();
int main(int argc, char* argv[])
{

    StartTimer(Test1);

    Sleep(5000);

    return 0;
}

void Test1()
{
    cout << "Testing Thread\n";
}
Run Code Online (Sandbox Code Playgroud)

c c++ multithreading function-pointers

1
推荐指数
1
解决办法
4894
查看次数

如何使用void指针但不是Object来获取对类的成员变量的访问权限

我试图在不使用对象的情况下访问类的成员变量.请让我知道如何去做.

class TestMem
{
    int a;
    int b;
public:
    TestMem(){}
    void TestMem1()
    {
        a = 10;
        b = 20;
    }
};

void (TestMem::*pMem)();

int main(int argc, char* argv[])
{

    TestMem o1;
    pMem = &(TestMem::TestMem1);

    void *p = (void*)&pMem;
    // How to access a & b member variables using variable p
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers

1
推荐指数
1
解决办法
1936
查看次数

如何仅在5个阵列的阵列中初始化第4个位置

我希望在5个位置阵列的第4位存储10个.怎么做 ?

int main( ) 
{  
    int a[5] = {,,,,4} ;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做我会得到错误.请帮忙.

提前致谢.

c c++

1
推荐指数
1
解决办法
339
查看次数

如何将64位长数据类型转换为16位数据类型

我想知道如何将64 bit long数据类型转换为任何16 bit数据类型.以太网应用程序中需要此功能才能包含时间戳.只有2个字节(16位)可用于包含时间戳.但我们得到的64 bit long是时间戳值Win API.因此,从64位数据类型到16位数据类型的转换是必不可少的.

c c++ timestamp

0
推荐指数
1
解决办法
1995
查看次数

内部如何工作int const iVal = 5; (int&)iVal = 10;

我想知道以下如何工作@编译器级别.

int const iVal = 5; 
(int&)iVal = 10; 
Run Code Online (Sandbox Code Playgroud)

一点m/c或编译器级别的答案会非常充实.

提前致谢.

c c++ compiler-construction

0
推荐指数
2
解决办法
695
查看次数

在私有类中访问公共类函数给出错误

class test
{
private:
    class privateStruct
    {
    public:
        int m;
        privateStruct(int p){m=p;}
    };
};

void ff()
{
    test::privateStruct ps(4);
    throw ps; //Does not work.. 
}

void main()
{
    try
    {
        ff();
    }
    catch(...)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

但以下代码有效为什么

class test
{
private:
    class privateStruct
    {
    public:
        int m;
        privateStruct(int p){m=p;}
    };
};

void ff()
{
    throw test::privateStruct(4); //Work why
}

void main()
{
    try
    {
        ff();
    }
    catch(...)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 VC++ 6。

我需要回答为什么上面的代码有效。

提前致谢 :)

c++

0
推荐指数
1
解决办法
130
查看次数

在main()中调用它后访问函数变量

我想在main()中访问Func()中的变量v1和v2

int main(void)
{
   Func();
   int k = ? //How to access variable 'v1' which is in Func()
   int j = ? //How to access variable 'v2' which is in Func()
}

void Func()
{
    int v1  = 10;
    int v2  = 20;
}
Run Code Online (Sandbox Code Playgroud)

我听说我们可以从Stack访问.但怎么办

谢谢.

c c++

-1
推荐指数
1
解决办法
1008
查看次数