【发布时间】:2016-06-13 08:13:05
【问题描述】:
我想通过 boost::asio 原始套接字发送 TCP 消息。 我的数据包基于此来源:https://github.com/pfpacket/SYN-flood
我检查了 IP 和 TCP 数据包生成器的二进制输出,这些消息看起来有效。 TCP 的原始套接字函数看起来也不错。
45 10 00 28 00 00 40 00
40 06 A5 18 08 08 08 08
0B 0B 07 01 11 AD 15 B3
00 00 17 AA 00 00 00 00
50 02 10 00 3E BD 00 00
无论如何,如果我通过 send_to 函数将其发送到套接字,我会收到错误:
send_to: Ein ungültiges Argument wurde angegeben
英文翻译:“Used a non valid argument”
我不知道哪里有问题。我需要有关相关问题的更多详细信息。
如何从 send_to() 接收更具体的错误消息?下一步我能做什么?
int main() {
this->port = "5555";
this->target = "11.11.7.1";
try {
boost::asio::io_service io_service;
raw_tcp::socket socket(io_service, raw_tcp::v4());
socket.set_option(boost::asio::ip::ip_hdrincl(true));
raw_tcp::resolver resolver(io_service);
raw_tcp::resolver::query query( this->target , boost::lexical_cast< std::string >( this->port ));
raw_tcp::endpoint destination = *resolver.resolve( query );
boost::asio::streambuf request_buffer;
std::ostream os(&request_buffer);
//creates the ipheader and tcp packet and forward it to buffer os
set_syn_segment(os);
socket.send_to(request_buffer.data(), destination);
} catch (std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}
【问题讨论】:
标签: c++ sockets visual-c++ boost boost-asio