Boost :: asio :: socket, как получить int или uint из него, который можно было бы кроссплатформенно назначать обратно? - PullRequest
0 голосов
/ 16 октября 2011

Итак, у нас есть какая-то функция, подобная этой :

void SendData (/* what goes here if we can only send to our function C POD types like int, uint etc? */ socket, std::string message)
{
    boost::asio::io_service ioserv;
    boost::asio::ip::tcp::socket s(ioserv);
    s.assign(boost::asio::ip::tcp::v4(), socket);
    s.send(boost::asio::buffer(message));
}

, и из какой-то другой функции мы хотим вызвать SendData, имеющую некоторую boost::asio::ip::tcp::socket sock ... так что-то вроде:

//...
SendData(/* what goes here? Is there any sock.getInt() */, "message");
//...

Так, каковы мои варианты для этого?Какие простые типы P P C могут быть взяты из boost :: asio :: ip :: tcp :: socket, которые позже могут быть интерпретированы с помощью .assign?

1 Ответ

0 голосов
/ 16 октября 2011

Какие простые типы C POD можно взять из boost::asio::ip::tcp::socket это может быть позже истолковано как assign()?

socket::native() возвращает собственное представление того, что было передано socket::assign(). В Linux и Mac OS X это целое число, я не знаю о Windows.

...