小编Yas*_*Umi的帖子

使用C/C++套接字模拟网络条件

我正在寻找一种方法来添加网络仿真到套接字.

基本解决方案是为连接添加带宽限制的某种方式.

对我来说理想的解决方案是:

  • 支持高级网络属性(延迟,数据包丢失)
  • 开源
  • 拥有与标准套接字类似的API(或包围它们)
  • 适用于Windows和Linux
  • 支持IPv4和IPv6

我看到了一些在系统级别上工作的选项,甚至是代理(Dummynet,WANem,neten等),但这对我不起作用,因为我希望能够手动模拟每个套接字(例如,打开一个带有调制解调器仿真的插座和一个带有3G仿真的插座.基本上我想知道这些工具是如何做到的.

编辑:我需要在我自己的产品中嵌入此功能,因此使用额外的盒子或需要手动配置的第三方工具是不可接受的.我想编写与这些工具完全相同的代码,我的问题是如何做到这一点.

结语:事后来看,我的问题有点误导.显然,没有办法直接在套接字上做我想要的.有两种选择:

添加发送/接收操作的延迟(基于@PaulCoccoli的答案):
通过在发送和接收之前添加延迟,您可以获得非常粗略的网络模拟(延迟,延迟发送的恒定延迟,以及不发送超过X字节每个第二,用于带宽).
保罗的回答和评论对我很有启发,所以我给他奖励.

将网络模拟逻辑添加为代理(基于@ m0she和其他人的回答):
通过代理发送请求,或使用代理拦截请求,然后添加所需的模拟.但是,使用现成的解决方案而不是编写自己的代理实现更有意义 - 从我所看到的Dummynet可能是最好的选择(这就是webpagetest.org所做的).其他选项在下面的答案中,我还将添加DonsProxy
这是更好的方法,所以我接受这个答案.

c++ sockets networking network-programming emulation

15
推荐指数
2
解决办法
4626
查看次数

Tyrus WebSockets(Java) - 如何设置客户端本地IP地址

有没有办法在使用WebSockets(Tyrus)时指定本地IP地址和端口?

我正在寻找与Socket的完整4参数构造函数相同的功能

编辑:

我发现低级Grizzly TCPNIOTransport确实有一个带本地地址connect()方法,但我不知道如何让Tyrus客户端使用它.

java grizzly websocket tyrus

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

Web规模分析应用程序的数据库选择

我想构建一个类似于Google-Analytics的网络应用程序,我会在其中收集客户最终用户的统计信息,并根据该数据向客户展示分析.

特点:

  • 高扩展性,处理量非常大
  • 分区 - 查询始终在单个客户的数据上运行
  • 支持分析查询(向下钻取,切片等)

由于分析需要,我正在考虑使用OLAP/BI套件,但我不确定它是否适合这种规模.NoSQL数据库?简单的RDBMS会做什么?

database olap database-design nosql business-intelligence

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

如何将插件部署到Jenkins Hosting?

我正在尝试从我的插件创建一个新版本,但我无法使其工作.

我试图遵循的一般文件是:https://wiki.jenkins-ci.org/display/JENKINS/Hosting+Plugins

我设法在该页面上得到几乎所有可能的错误消息(连接被拒绝,公钥,未经授权的401)并尝试了很多组合的建议在这里和这里以及整个网络,但到目前为止没有运气.

我在JenkinsCI中有一个用户,也在GitHub中有一个用户,并且在infra中有权限.

您能指出一个导致成功部署的步骤列表吗?请尽可能具体.

  • 在哪里跑?CMD?GitHub-Desktop Shell(cmd?bash?PowerShell?)常规Git-Bash?(每个给我不同的结果)
  • pom.xml设置?哪个家长要用?我再次尝试了所有包括最新的2.14,每个版本给我不同的错误

我跑之前应该怎么做才能测试呢?我已经运行了mvn release:perpare release:perform并且它导致我的版本号无缘无故地增加了很多次.应该'mvn deploy'也可以吗?(它没有)

git maven jenkins

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