本文整理汇总了C++中boost::asio::ip::tcp::socket::send方法的典型用法代码示例。如果您正苦于以下问题:C++ socket::send方法的具体用法?C++ socket::send怎么用?C++ socket::send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost::asio::ip::tcp::socket
的用法示例。
在下文中一共展示了socket::send方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: send
void send()
{
BOOST_CHECK_EQUAL( socket_.is_open(), true );
size_t l = 5;
socket_.send( boost::asio::buffer( &l, sizeof(size_t) ) );
socket_.send( boost::asio::buffer( "hello", 5 ) );
}
示例2: if
int justine::sampleclient::ShmClient::init ( boost::asio::ip::tcp::socket & socket )
{
boost::system::error_code err;
size_t length = std::sprintf ( data, "<init guided Binfavágók 1 c>" );
socket.send ( boost::asio::buffer ( data, length ) );
length = socket.read_some ( boost::asio::buffer ( data ), err );
if ( err == boost::asio::error::eof )
{
// TODO
}
else if ( err )
{
throw boost::system::system_error ( err );
}
int id {0};
std::sscanf ( data, "<OK %d", &id );
std::cout.write ( data, length );
std::cout << "Command INIT sent." << std::endl;
return id;
}
示例3: handleRead
/**
* Вызывается всякий раз, когда данные получены.
*/
static void handleRead(
ba::ip::tcp::socket& readFrom,
ba::ip::tcp::socket& writeTo,
char* readBuffer,
size_t bytes,
const boost::system::error_code& e
) {
#ifdef _DEBUG
const std::string data( readBuffer, readBuffer + bytes );
std::cout << data << std::endl;
#endif
// отправляем полученные данные "другой стороне"
writeTo.send( ba::buffer( readBuffer, bytes ) );
// читаем ещё данные с "этой стороны"
readFrom.async_read_some(
ba::buffer( readBuffer, 1024 ),
boost::bind(
handleRead,
boost::ref( readFrom ),
boost::ref( writeTo),
readBuffer,
ba::placeholders::bytes_transferred,
ba::placeholders::error
) );
}
示例4: if
std::vector<justine::sampleclient::MyShmClient::Gangster> justine::sampleclient::MyShmClient::gangsters ( boost::asio::ip::tcp::socket & socket, int id,
osmium::unsigned_object_id_type cop )
{
boost::system::error_code err;
size_t length = std::sprintf ( data, "<gangsters " );
length += std::sprintf ( data+length, "%d>", id );
socket.send ( boost::asio::buffer ( data, length ) );
length = socket.read_some ( boost::asio::buffer ( data ), err );
if ( err == boost::asio::error::eof )
{
// TODO
}
else if ( err )
{
throw boost::system::system_error ( err );
}
/* reading all gangsters into a vector */
int idd {0};
unsigned f, t, s;
int n {0};
int nn {0};
std::vector<Gangster> gangsters;
while ( std::sscanf ( data+nn, "<OK %d %u %u %u>%n", &idd, &f, &t, &s, &n ) == 4 )
{
nn += n;
gangsters.push_back ( Gangster {idd, f, t, s} );
}
std::sort ( gangsters.begin(), gangsters.end(), [this, cop] ( Gangster x, Gangster y )
{
return dst ( cop, x.to ) < dst ( cop, y.to );
} );
std::cout.write ( data, length );
std::cout << "Command GANGSTER sent." << std::endl;
return gangsters;
}
示例5: run_socket_io
void run_socket_io(boost::asio::ip::tcp::socket& socket)
{
std::array<char, 1024> read_buffer;
std::array<char, 1024> write_buffer;
socket.async_read_some(boost::asio::buffer(write_buffer, 1024),
[&write_buffer](const boost::system::error_code& ec, std::size_t length)
{
if (!ec)
std::cout.write(write_buffer.data(), length);
});
while (std::cin.getline(read_buffer.data(), 1024))
{
socket.send(
boost::asio::buffer(read_buffer, std::strlen(read_buffer.data())));
}
}
示例6: send
void send(std::string const& message) {
socket.send(boost::asio::buffer(message));
}