Я пытаюсь отправить большое количество байтов, используя библиотеку boost.asio, следующим образом:
void tcp_send(boost::asio::io_service &io, const char *dst_ip, uint16 dst_port)
{
uint8 *sbuff;
size_t slen;
ip::tcp::socket sock(io);
sock.connect(ip::tcp::endpoint(ip::address::from_string(dst_ip), dst_port));
sbuff = new uint8[100412];
sbuff[0] = 67;
sbuff[1] = 193;
sbuff[2] = 136;
sbuff[3] = 60;
boost::asio::async_write(sock, boost::asio::buffer(sbuff, 100412),
boost::bind((&send_handler), placeholders::error));
}
Когда я проверяю количество переданных байтов с помощью wireshark, отправитель отправляет всегда и только 65536 байтов данных, исключая байты заголовка TCP. Так в чем может быть проблема? Есть ли какой-либо параметр, который мне нужно изменить.
Я запускаю приложение на Linux Ubuntu. Похоже, что максимальное количество передаваемых байтов равно 2^16.