小编Syn*_*xis的帖子

用于接收UDP数据包的可变大小缓冲区

我有一个UDP套接字,它将接收一些可能不同大小的数据包,我会异步处理它:

socket.async_receive_from(boost::asio::buffer(buffer, 65536), senderEndpoint, handler);
Run Code Online (Sandbox Code Playgroud)

这里的问题是,为了处理不同的大小,我有一个很大的缓冲区,可以通过可变大小的缓冲区来解决.

据我所知,在使用时async_receive_from,一次只调用一个数据包,因为数据包边界在UDP中保留.那么,有没有办法给空缓冲区async_receive_from,Asio会增长到适合数据包大小

另请注意,我包装了数据包,因此对于每个传输到此套接字的数据包,4个第一个字节是数据包的长度.

c++ buffer boost udp boost-asio

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

自动创建未知数量的多个 C++ 对象

我想知道 C++ 自动创建多个无限数量的对象(0..n)的方法。用例如下:

假设我有一个脚本,用户必须输入相关数据(宽度、长度、高度),稍后在 Box 类中将包含这些数据。

Box
{ 
    ...
    ...
    double width;
    double length;
    double height;
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

该脚本如下所示:

<id="width" value="1"/>
<id="length" value="3"/>
<id="height" value="3"/>

<id="width2" value="3"/>
<id="length2" value="3"/>
<id="height2" value="4"/>

<id="width3" value="2"/>
<id="length3" value="3"/>
<id="height3" value="3"/>
Run Code Online (Sandbox Code Playgroud)

换句话说,我如何实例化那些事先不知道对象数量的对象,而是取决于用户输入了多少框信息(宽度等)。

另外,是否有任何设计模式?

c++ oop

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

GCC错误:'X'不是模板?

最近,我在Codepad上测试了一些模板代码.虽然代码是正确的,GCC给了我一个非常奇怪的错误.我还在Ideone上测试了它:

经过测试的代码:

template<int num>
struct count;

template<>
struct count<-1>
{
};

int main()
{
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

下面是结果,上键盘(GCC 4.1.2)和Ideone(GCC 4.3.4):GCC 4.1.2输出:

Line 5: error: 'count' is not a template
Run Code Online (Sandbox Code Playgroud)

而GCC 4.3.4正常编译没有错误.这真的是编译器错误,还是我的代码不正确(并且由于扩展而编译?)

c++ gcc templates

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

指针递增和递减

我正在解决老师给我的一个问题并且遇到了一些问题.我应该给出以下代码的输出:(用Turbo C++编写)

#include<iostream.h>
void main()
{
    char *p = "School";
    char c;
    c=++(*(p++));
    cout<<c<<","<<p<<endl;
    cout<<p<<","<<++(*(p--))<<","<<++(*(p++))<<endl;

}
Run Code Online (Sandbox Code Playgroud)

程序给出的输出是:

T,chool
ijool,j,i
Run Code Online (Sandbox Code Playgroud)

我得到了指针本身增量的部分,然后递增指针指向.但我没有得到字符串打印出来的部分ijool

有人可以帮我吗?

c++ pointers turbo-c++

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

标签 统计

c++ ×4

boost ×1

boost-asio ×1

buffer ×1

gcc ×1

oop ×1

pointers ×1

templates ×1

turbo-c++ ×1

udp ×1