为什么提升 asio udp 连接会抛出"send: Connection refused"?
Why can boost asio udp connection throw "send: Connection refused"?
我认为udp连接实际上并不关心另一端是否有对等端,那么为什么boost asio udp连接会在socket->send( boost::asio::buffer( data.get(), length ) );
调用上抛出"send:connection rejected"(我从Linux发送到Windows,只是发送而不尝试读取任何内容)?是网卡错误还是可能是什么?
Boost.Asio正在抛出一个值为boost::asio::error::connection_refused
的错误,因为底层套接字的send*()
操作返回了ECONNREFUSED
的错误代码。根据udp手册页面,允许send*()
函数返回ECONNREFUSED
:
套接字或ip记录的所有错误都可以通过UDP套接字上的发送或接收返回。
ECONNREFUSED
nbsp nbsp 没有与目标地址关联的接收器。这可能是由先前通过套接字发送的数据包引起的。
虽然在无连接协议上接收到与连接相关的错误可能很奇怪,但服务仍然被允许返回检测到的错误。协议的不可靠部分阻止呼叫者接收到目的地已接收到消息的确认。但是,如果服务知道目的地没有收到消息,则这并不妨碍它报告连接拒绝错误。
使用send_to
。毕竟,UDP是一种无连接协议。
相关文章:
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- 在UNIX中通过recv/send交换数据时,如何正确使用缓冲区
- 如何为winsock的send()函数构造constchar*缓冲区
- 实时线程中的 ZeroMQ inproc PubSub send() 调用会导致严重的阻塞吗?
- 为什么 QObject::d isconnect(const QMetaObject::Connection &connection) 采用 const 参数并打算修改它?
- Epoll zero recv() and negative(EAGAIN) send()
- QDBus send int[]
- 如何使用 epoll(void* event.data.ptr) 管理 Connection 的生命周期
- send() 或 recv() 未同步
- 使用SEND()之前,请使用Select()检查套接字
- shutdown() 和 closesocket() 在 SOCKET 上的 send() 之后不久
- 对'cocos2d::network::HttpClient::send(cocos2d::network::HttpRequest*)'的未定义引用
- 如何在MPI_scatterv中正确设置"send counts"和"displacement"参数?
- MySQL 异常"connection lost during query"、"MySQL server has gone away"和"command out of sync"
- 使用Send()发送更大的数据
- 呼叫send()关闭申请的情况下没有错误
- 如果send()返回x字节,则recv()在一个呼叫中获取相同数量的字节
- 为什么提升 asio udp 连接会抛出"send: Connection refused"?