小编Kas*_*lai的帖子

重载多个运算符

简而言之,我的目标是让foo [bar]返回type1,而foo [bar] =返回type2.

我正在用C++编写一个对象,它的出现很顺利,但是我只希望做一件小事,但似乎不可能.

我的对象是一个存储类,所以我使用数组下标来访问值.我还需要赋值,所以我也重载了=运算符.但是,它有点不方便,因为我的类所持有的值是第一类对象,因此对于我的数组下标重载,我不能按原样返回它们.我必须返回一个中间类来处理=运算符,但我也想要检索该值而无需额外输入.

有没有办法做到这一点?哈金的方式是可以接受的.

编辑:这是它(应该)做的一个例子

#include<cstdio>
#include<cstdlib>

class foo{
    char* a[100];
    foo(){
        for( int i = 0; i < 100; i ++)
            a[i] = 0;
    }
    char* operator[] (int location){
        return a[location];
    }
    foo& operator[]= (int location, const char* value ){
        if( a[location] == 0 )
            a[location] = (char*) malloc( strlen( value ) + 1 );
        else
            a[location] = (char*) realloc( a[location], strlen( value ) + 1 );
        strcpy( a[location], value );
    }
};
int main(){
    foo …
Run Code Online (Sandbox Code Playgroud)

c++ operator-keyword

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

TCP连接劫持

我有一个小项目,我一直在使用C++,由于它的性质,我需要将数据包插入到实时TCP流中.(目的是无辜的,http://ee.forumify.com/viewtopic.php?id = 3299,如果你必须知道)我正在为游戏创建一个关卡编辑器,由于握手的性质,我不能简单地与WinSock等高级库建立新连接.到目前为止,它依靠Winsock数据包编辑器来完成肮脏的工作,但如果我让应用程序处理它,它会让每个人都开心.

所以我的问题是:在某个地方是否有一个API可以让我控制一个实时的TCP流,最好是一个在它完成后保持有效的一个?我宁愿不必注入任何DLL.另外,Detours是禁忌,因为我正在使用GCC/Mingw.

我玩弄了WinPCap并且我有一些工作代码(我可以收集一个数据包,并从中生成一个适当的数据包发送),但由于它运行在如此低的水平,我无法预测所有的潜在协议最终用户可能会使用.是的,很可能他们将使用IPv4 over Ethernet,但那些仍然使用PPP或其他一些模糊协议的人呢?此外,在完成连接后,客户端应用程序会断开连接,因为数据包中的最新ID值已更改,并且客户端认为已断开连接.

所以,如果有人能提供高级TCP流操纵器,我会非常高兴.如果没有,我将继续修补WinPCap并告诉所有拨号用户更好地上网.

目标平台:Microsoft Windows XP到Windows 7

c++ tcp winpcap raw-sockets

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

标签 统计

c++ ×2

operator-keyword ×1

raw-sockets ×1

tcp ×1

winpcap ×1