繁体   English   中英

为什么升压asio udp连接会抛出“发送:连接被拒绝”?

[英]Why can boost asio udp connection throw “send: Connection refused”?

我以为udp连接并不真正在意对方是否有任何对等方,因此为什么可以提升asio udp连接,从而在socket->send( boost::asio::buffer( data.get(), length ) );上抛出“ send:Connection拒绝” socket->send( boost::asio::buffer( data.get(), length ) ); 电话(我是从Linux发送到Windows,仅发送是不尝试读取任何内容)? 是网卡错误还是什么原因?

使用send_to 毕竟,UDP是无连接协议。

Boost.Asio抛出错误,其值为boost::asio::error::connection_refused因为基础套接字的send*()操作返回的错误代码为ECONNREFUSED 根据udp手册页,允许send*()函数返回ECONNREFUSED

UDP套接字上的发送或接收都可能返回针对套接字ip记录的所有错误。

ECONNREFUSED
没有接收者与目标地址相关联。 这可能是由套接字上发送的先前数据包引起的。

尽管在无连接协议上接收到与连接相关的错误可能很奇怪,但仍允许该服务返回检测到的错误。 协议的不可靠部分阻止了呼叫者接收到目的地已接收到消息的确认。 但是,如果它知道目的地未收到消息,则这并不妨碍服务报告连接拒绝错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM