boost::asio::ip::tcp::socket

boost::asio::ip::tcp::socket 是一个用于异步I/O操作的类,它是Boost.Asio库的一部分,专门用于处理TCP套接字。

以下是一个简单的使用 boost::asio::ip::tcp::socket 的例子,这个例子展示了如何创建一个TCP客户端,连接到服务器,并发送接收数据:

#include <iostream>
#include <boost/asio.hpp>
 
int main() {
    // 创建IO服务对象
    boost::asio::io_service io_service;
 
    // 创建一个TCP套接字对象
    boost::asio::ip::tcp::socket socket(io_service);
 
    // 创建一个端点对象,表示服务器的IP和端口
    boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 8080);
 
    // 连接到服务器
    boost::system::error_code ec;
    socket.connect(endpoint, ec);
    if (ec) {
        std::cout << "Connection failed: " << ec.message() << std::endl;
        return -1;
    }
 
    // 发送数据到服务器
    std::string message = "Hello, Server!";
    boost::asio::write(socket, boost::asio::buffer(message, message.size()), ec);
    if (ec) {
        std::cout << "Write failed: " << ec.message() << std::endl;
        return -1;
    }
 
    // 读取服务器响应
    char buffer[1024];
    boost::system::error_code error;
    size_t len = socket.read_some(boost::asio::buffer(buffer), error);
    std::cout.write(buffer, len);
    std::cout << std::endl;
 
    // 关闭连接
    socket.close();
 
    return 0;
}

在这个例子中,我们首先创建了一个 io_service 对象和一个 tcp::socket 对象。然后,我们创建了一个 tcp::endpoint 对象,指定服务器的IP地址和端口。接下来,我们使用 socket.connect() 方法连接到服务器。连接成功后,我们使用 boost::asio::write() 方法发送数据。为了接收服务器的响应,我们使用 socket.read_some() 方法读取数据,并将其打印到控制台。最后,我们关闭了与服务器的连接。

请注意,这个例子假设服务器在本地机器(127.0.0.1)的8080端口上运行,并且已经设置好了监听该端口的服务。实际使用时,需要根据实际情况调整服务器的IP地址和端口。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 03:06:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 03:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 03:06:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 03:06:02       20 阅读

热门阅读

  1. 火绒安全:全面守护你的数字世界

    2024-04-30 03:06:02       11 阅读
  2. web server apache tomcat11-28-Windows Service

    2024-04-30 03:06:02       12 阅读
  3. 如何评判一个算法的好坏,你知道吗

    2024-04-30 03:06:02       10 阅读
  4. go日志记录

    2024-04-30 03:06:02       15 阅读
  5. 关于Android优化

    2024-04-30 03:06:02       11 阅读
  6. ONNX模型

    2024-04-30 03:06:02       9 阅读
  7. 使用Redis实现延时队列

    2024-04-30 03:06:02       11 阅读
  8. 安卓手机APP开发__媒体开发部分__APK裁剪

    2024-04-30 03:06:02       18 阅读
  9. 【C++例8-2】 将单目运算符“++”重载为成员函数

    2024-04-30 03:06:02       10 阅读