草庐IT

send_task

全部标签

c++ - packaged_task 卡在 operator() 上

在Ubuntu上使用gcc4.7.2编译,使用-std=c++11-O0-pthread编译,我以某种方式在代码中创建了一个死锁,它似乎不应该遇到这个问题。我有一个线程,它刚刚获得一个锁,然后运行​​vector>,调用一切。同时,主线程推送std::packaged_tasks一个接一个地处理它,并在该任务的future时阻止返回。任务本身是微不足道的(打印和返回)。这是完整的代码。运行应用程序有时会成功,但尝试几次就会挂起:#include#include#include#include#includestd::unique_locklock(){staticstd::mutexm

c++ - 写入套接字时使用 write() 而不是 send() 的性能影响

我正在使用典型的套接字API在Linux平台上用C++编写网络应用程序,并且我正在研究将字节数组写入TCP流的两种替代方法:通过调用write()或通过调用发送()。我知道,由于这是Linux,套接字句柄只是一个文件描述符,因此对套接字执行read()和write()调用是有效的,但是套接字API还提供了send()和recv()函数来执行相同的任务。因此,我想知道是否有任何特别的理由选择一类函数而不是另一类——发送/接收函数是否针对网络写入/读取进行了优化,它们的性能是否更好等?或者我使用哪些功能真的很随意?read()和write()在所有情况下都能正常运行吗?感谢您的任何见解!

c++ - N*(connect + send + close) vs (Nagle disable + connect + N*send + close),N > 1

我是套接字编程的新手(正如您已经从我的愚蠢问题中弄清楚的那样),但不要让我感到羞耻,我正在使用TCPposix编写程序。我的约束如下:从客户端发送到服务器的消息应该被读取为字节流,虽然我的应用程序性能不高,但消息应该尽快传递。我编写了一个TCP客户端类,目的是执行以下操作:1次连接-多次发送-1次在流式传输结束时关闭。问题是消息没有近乎实时地传递(我假设它等待有一个更大的包裹更好吞吐量)在网上做了一些研究后,我发现虽然你可以禁用Nagle算法(NA),但这样做是一个非常糟糕的主意。由于我是套接字编程的新手,我不想禁用我不完全理解的功能。所以我有两个(不好的?)选择:连接-发送-关闭每条

c++ - std::packaged_task 没有违反销毁 promise ?

我在使用打包任务时遇到了一些非常奇怪的事情。阅读时~packaged_task我的印象是,如果std::packaged_task在执行之前被销毁,则promise将被破坏,并且尝试从future获取结果应该抛出std::future_error。但是,在VisualStudio2013上,情况似乎并非如此。获取以下代码:#include#include#includeintmain(){std::futuref;{std::packaged_tasktask([](){return3;});f=task.get_future();}std::cout我希望在f.get()上获得一个s

node.js - Microsoft Bot 框架 : Sending Message on connect

我是MicrosoftBot框架的新手。现在我正在模拟器上测试我的代码。我想在您连接后立即发送Hello消息。以下是我的代码。varrestify=require('restify');varbuilder=require('botbuilder');varserver=restify.createServer();server.listen(process.env.port||process.env.PORT||3978,function(){console.log('%slisteningto%s',server.name,server.url);});varconnector=n

javascript - Node.js res.send 不是一个函数

我正在尝试以下代码,但它给了我一个错误,“res.send不是函数”。请帮我。代码如下:varhttp=require('http');varfs=require('fs');varconnect=require('connect');varexpress=require('express');varapp=express();app.get('/',function(res,req){res.send('HelloWorld');});varserver=app.listen(8888,function(){varhost=server.address().address;varpo

node.js - process.send 在 Node.js 中有条件地定义

无论出于何种原因,在Node.js中,函数process.send在某些环境中定义,但在其他环境中未定义。例如,当我像这样从Node.js中的父进程派生子进程时://parentprocessvarcp=require('child_process');vark=cp.fork('./child.js',['arg1','arg2','arg3']);k.send('fail');//k.sendisdefined...process.send("ok,let'strythis...");//process.sendisNOTdefined子进程内部://child.jsprocess

node.js - 使用 npm 链接时如何修复 "Task is not in your gulpfile"错误?

我们有一堆共享通用gulp逻辑的应用程序,所以我们制作了一个gulp插件,其中包含一堆自定义任务。但是,我们希望避免为我们开发的每个应用程序安装gulp+我们的插件(以及一半的互联网)。理想情况下,我想这样做:npminstall-ggulpnpminstall-g那么对于每个应用,我们只需要做:npmlinkgulpnpmlink虽然这可行,但问题是gulp不再识别我们的任何自定义gulp任务。我运行的任何gulp命令都会导致:[15:16:51]Usinggulpfile/workspace/my-app/gulpfile.js[15:16:51]Task'dev'isnotiny

node.js - Express - res.send() 工作一次

我是Node和Express的新手,我试图用Express做一些东西只是为了开始,然后我遇到了这个问题。第一个res.send()效果很好,但第二个没有触发。这是我的代码:varexpress=require('express'),app=express(),fs=require('fs'),visits;app.listen(8080);app.get('/',function(req,res){res.send('Hello');fs.readFile('counter.txt','utf-8',function(e,d){if(e){console.log(e);}else{co

node.js - Node JS : sending/uploading a local file to a remote server

我已使用Winston模块为我的离线应用程序创建每日日志文件。我现在需要能够通过POST将该文件发送或上传到远程服务器(该部分已经存在)我知道我需要分block写入文件,这样它就不会占用内存,所以我正在使用fs.createReadStream但是我似乎只收到503响应,即使只发送示例文本。编辑我发现接收者期望数据被命名为“数据”。我删除了createReadSteam,因为我只能让它与'application/x-www-form-urlencoded'和同步fs.readFileSync一起使用。如果我在php服务器上将其更改为“multipart/form-data”,我是否可以