小编Arm*_*ndo的帖子

N*(连接+发送+关闭)vs(Nagle禁用+连接+ N*发送+关闭),N> 1

我是套接字编程的新手(正如你已经通过我的愚蠢问题弄清楚的那样),但是把我的耻辱放在一边,我正在使用TCP posix编写一个程序.我的约束如下:从客户端发送到服务器的消息应该作为字节流读取,而我的应用程序性能不高时,应该尽快传递消息.我编写了一个TCP客户端类,目的是执行以下操作:1个连接 - 多个发送 - 并且在流式传输结束时关闭1个.问题是消息不能近乎实时地传递(我假设它等待更大的包以获得更好的吞吐量)在网上进行一些研究之后,我发现你可以禁用Nagle算法(NA) ),这样做是一个非常糟糕的主意.由于我是套接字编程的新手,我不想禁用我不完全理解的功能.所以我留下两个(坏?)选项:

  1. connect - 每封邮件发送 - 关闭
  2. 1连接 - 多次发送并在禁用NA时结束1次关闭.虽然我读到了禁用NA的后果,但在我看来,每次打开和关闭套接字只是为了发送消息也是一个代价高昂的代价.

没有留下插座还有其他解决方案吗?

谢谢.

c c++ sockets network-programming

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

什么时候使用C++私有继承而不是组合?

你能给我一个具体的例子,当我更喜欢使用私有继承而非组合时?就个人而言,我将使用组合而非私有继承,但可能存在这样的情况:使用私有继承是特定问题的最佳解决方案.阅读C++ faq,给出了一个使用私有继承的示例,但我似乎比私有继承更容易使用组合+策略模式甚至公共继承.

c++ inheritance strategy-pattern composition private-inheritance

12
推荐指数
3
解决办法
4128
查看次数

寻找有关SubVersion的最佳实践,分支和社交方面的提示

我和我的团队目前使用Perforce进行版本控制.我们曾经把所有东西都提交到trunk,直到有一天我们需要在程序中添加几个项目,所以我们为我的老板创建了一个分支,为我创建了一个分支,另一个分支进行了测试.一切顺利,直到我们尝试将分支合并回主干.我们Visual Studio(VS)和它生成的解决方案文件由于某种原因,它不适用于Perforce.经过很多努力,我们将分支部分合并到主干中.我正在考虑转向颠覆.我在我的本地电脑上有Subversion,我对Visual Studio分支和维护没有任何问题.我建议老板搬到SVN.虽然我的老板对于移动50万行代码的想法持开放态度,但我需要建立一个强有力的案例.我是最年轻的毕业生程序员,所以说我的想法需要比其他人更多的牛肉=)

我决定在我们的一台服务器上安装SVN并将代码传递给它.我们不会很快摆脱Perforce,但我的目标是以非常缓慢的方式杀死它并且让我的队友变态SVN使用起来有多容易,我已经有一个人在我的船上.

由于我可以从头开始配置SVN,我想应用SVN的最佳实践.我读了红豆书,我打算按照他们的回购布局和备份提示,但我有更多与社交和分支问题有关的问题.以下是我对社会问题的疑问,

  1. 有没有办法以社交方式防止源冲突?如果是这样,沟通冲突变化的最佳方式是什么?

  2. 我也计划在该服务器上安装CMS.所以我的队友可以写作或传达他们有分支机构之类的东西,但我不知道是否还有其他工具来跟踪我们项目的历史性健康和缺陷.

  3. 即使我的公司采用扁平化管理方法,像我这样的新秀如何能够在不打破无形"高级"等级的情况下说服或强制与高级程序员进行社交沟通?

对于分支和标记,

  1. 我不希望其他团队分支在程序中添加"Hello,World!"代码.我想把分支视为一种与众不同的东西.任何人都可以给我一个关于何时添加创建分支的经验法则?什么时候合并?

  2. 在什么情况下分支分支是个好主意?

  3. 对于标记,我的理解是标记符号表示程序的静态点(即:v1.0,v2.5)是正确的吗?

  4. 如果我创建一个分支并开始编写我的更改,我的队友应该从我的分支开始同步吗?还是他们还应该在后备箱里发展?或者他们应该为自己创建另一个分支?

我为我的所有问题道歉,但是当涉及到版本控制时,我觉得我在BP清理过程中游泳了墨西哥湾.

svn version-control perforce branch

9
推荐指数
3
解决办法
1844
查看次数

C++指向函数指针数组的指针?任何线索如何做到这一点?

也许是一个愚蠢的问题,但我没有找到我想要的解决方案.基本上,我想声明一个指向函数指针的指针,该函数指针指向具有N个参数的函数,这些参数返回一个指向int的const指针.

下面的代码声明了一个指向函数指针的指针数组:

  int *const (**fptr[10])(...); // (const int* || int const*) != int *const
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,唯一缺少的(我认为)是指向上面代码的指针.

我只是一个初学者而且我没有在制作中使用这种语法,我只是在学习C++时很开心.

谢谢,

阿曼多.

c++ arrays pointers function-pointers

3
推荐指数
2
解决办法
4114
查看次数