本文整理汇总了C++中Try::address方法的典型用法代码示例。如果您正苦于以下问题:C++ Try::address方法的具体用法?C++ Try::address怎么用?C++ Try::address使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Try
的用法示例。
在下文中一共展示了Try::address方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetParam
// Test a basic back-and-forth communication within the same OS
// process.
TEST_P(SSLTest, BasicSameProcess)
{
os::setenv("LIBPROCESS_SSL_ENABLED", "true");
os::setenv("LIBPROCESS_SSL_KEY_FILE", key_path().string());
os::setenv("LIBPROCESS_SSL_CERT_FILE", certificate_path().string());
os::setenv("LIBPROCESS_SSL_REQUIRE_CERT", "true");
os::setenv("LIBPROCESS_SSL_CA_DIR", os::getcwd());
os::setenv("LIBPROCESS_SSL_CA_FILE", certificate_path().string());
os::setenv("LIBPROCESS_SSL_VERIFY_IPADD", GetParam());
openssl::reinitialize();
Try<Socket> server = Socket::create(SocketImpl::Kind::SSL);
ASSERT_SOME(server);
Try<Socket> client = Socket::create(SocketImpl::Kind::SSL);
ASSERT_SOME(client);
// We need to explicitly bind to the loopback address so the
// certificate we create in this test fixture can be verified.
ASSERT_SOME(server->bind(Address::LOOPBACK_ANY()));
ASSERT_SOME(server->listen(BACKLOG));
Try<Address> address = server->address();
ASSERT_SOME(address);
Future<Socket> accept = server->accept();
AWAIT_ASSERT_READY(client->connect(address.get()));
// Wait for the server to have accepted the client connection.
AWAIT_ASSERT_READY(accept);
Socket socket = accept.get();
// Send a message from the client to the server.
const string data = "Hello World!";
AWAIT_ASSERT_READY(client->send(data));
// Verify the server received the message.
AWAIT_ASSERT_EQ(data, socket.recv(data.size()));
// Send the message back from the server to the client.
AWAIT_ASSERT_READY(socket.send(data));
// Verify the client received the message.
AWAIT_ASSERT_EQ(data, client->recv(data.size()));
}