C++ 从boost::asio::ip::tcp::socket获取ipv4数据包头

C++ 从boost::asio::ip::tcp::socket获取ipv4数据包头,c++,sockets,boost,tcp,nat,C++,Sockets,Boost,Tcp,Nat,我有个问题。 如何从boost::asio::ip::tcp::socket获取ipv4 paket头? 可能吗 我正在为sql流量编写一个NAT服务的简单实现,通过服务器从客户端获取。 服务器基于boost::asio示例代码结构 我想重新发送数据包,我的服务器从客户端获取数据包到mmssql服务器。并在从mssql服务器获取答案时执行相同的操作 我想直接编辑数据包头,就像NAT服务所做的那样,(可能还有其他方法吗?:),方法是将源ip更改为该服务器的ip,将目标ip更改为mssql服务器的i

我有个问题。 如何从boost::asio::ip::tcp::socket获取ipv4 paket头? 可能吗

我正在为sql流量编写一个NAT服务的简单实现,通过服务器从客户端获取。 服务器基于boost::asio示例代码结构

我想重新发送数据包,我的服务器从客户端获取数据包到mmssql服务器。并在从mssql服务器获取答案时执行相同的操作

我想直接编辑数据包头,就像NAT服务所做的那样,(可能还有其他方法吗?:),方法是将源ip更改为该服务器的ip,将目标ip更改为mssql服务器的ip。并反向执行类似的操作(从mssql到客户端)


你能给我什么建议?

tcp套接字剥离标题。原始插座给了你整包。我不认为Asio是你的图书馆,哦,天哪!5秒后的谷歌:我知道这里有原始套接字:github.com/kevincon/asio-rawsockets-example,但我不知道如何将其用于阅读目的:你能给我展示一下在这个套接字上接受连接的示例吗?:)因为我的服务器接受tcp套接字上的连接,而不能接受原始套接字上的连接(没有方法async_accept to boost::asio::ip::tcp::accceptor,其第一个参数是raw socket)