我正在尝试使用 boost::asio 库在网络上发送原始 TCP 数据包。我的程序在 Mac OS X 10.8 上运行良好,但是当我在 Windows 7 下运行程序时出现异常(在控制台中):Error: send_to: An invallid argument was supplied.
打开套接字的代码和send_to()
方法是:
try {
socket_.open();
socket_.send_to(request_buffer.data(), ep);
} catch (std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
用于定义端点:
ip::address_v4::bytes_type b = {{XXX, XXX, XXX, XXX}};
ip::raw::endpoint ep(boost::asio::ip::address_v4(b), (portnumber);
如何解决异常,使程序可以在 Windows 下运行?在 Visual Studio 2010 的输出窗口中,例外情况是:
First-chance exception at 0x000007fefcce9e5d (KernelBase.dll) in (programname).exe: Microsoft C++ exception: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> > at memory location 0x0,...