- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个简单的boost::asio::ip::tcp::acceptor
,它几乎什么都不做——它在无限循环中接受连接。然后,我有多个连接器同时运行,试图连接...
pSocket->async_connect(endpoint,
[=](boost::system::error_code error)
{
if(!error)
{
boost::asio::ip::tcp::no_delay noDelay(true);
pSocket->set_option(noDelay, error);
assert(!error);
std::cout << error.message() << '\n'; // "An invalid argument was supplied"
}
});
一切都在无限循环中运行,我正在运行 2 个客户端和 1 个服务器,所有环回连接。一段时间后(数百次成功的连接和断开连接),当在连接的套接字上设置 no_delay
选项时,我收到错误消息 An invalid argument was supplied
。
在什么情况下在套接字上设置选项会导致此错误?有没有人以前见过这种情况,并且知道它为什么会发生和/或解决它的方法?
更新:如果我将设置 set_option
更改为...
do
{
pSocket->set_option(noDelay, error);
} while(error);
...它会成功 - 通常在失败后的第二次尝试中。
最佳答案
昨天我一步一步调试set_option,问题是set_option使用了io_service_impl对象但是它包含了错误的套接字指针,这就是它崩溃的原因。但是在创建套接字时没有设置这个套接字,所以我认为你不能以这种方式在套接字上设置选项。
你必须在 set_option 之前打开套接字,在 async_connect
和 set_option
之前试试这个:
sock->open(boost::asio::ip::tcp::v4());
错误称为 Bad file descriptor
,它直接针对 set_option 调用中未初始化的套接字。
关于c++ - boost::asio set_option 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844608/
我有一个名为 result 的 DataFrame。 在教程中,我正在观看 Wes McKinney 在执行仅包含 df 名称的单元格时获取以下返回数据 - 当我执行包含 result 的单元格时,我
这可能是个愚蠢的问题,但是...... 在导入 pandas 后设置选项时,我一次设置一个选项,例如: pd.set_option('max_rows',1000) pd.set_option('no
我们已经成功安装了 python-ldap(2.4.19) 模块并成功执行了大部分操作。 但是当我们尝试加载证书以使用 ssl (ldaps) 时,ldap.set_option 总是返回异常。 它出
我尝试在 redhat 中使用参数 0.0.0.0 127.0.0.1 运行以下程序,但在 socket_.set_option(boost::asio::ip::multicast::加入组(多播地
我有一个简单的boost::asio::ip::tcp::acceptor,它几乎什么都不做——它在无限循环中接受连接。然后,我有多个连接器同时运行,试图连接... pSocket->async_co
我是 Dask 新手,我在我的 MacBook MacOS High Sierra 10.13.6 上安装了新版本 2.12.0。当我尝试使用以下代码启动分布式模式时: from dask.distr
我正在使用 Jupyter notebook 并导入了许多 DataFrames,其中一个包含很长的字符串。因此,我想在不影响全局设置的情况下临时更改 pandas 的显示选项。我尝试使用 with:
我需要设置选项 boost::asio::ip::tcp::no_delay 和 boost::asio::socket_base::linger boost::asio::ip::tcp::sock
我找不到 pandas.set_option() 的选项列表。 有谁知道这样的列表是否存在? 我能找到的最好的是这个页面:http://pandas.pydata.org/pandas-docs/de
这个问题在这里已经有了答案: iostream and No_delay option (1 个回答) 关闭 7 年前。 我这样创建一个套接字: client::client(boost::asio
我是一名优秀的程序员,十分优秀!