基于boost库1.60,实现一个UDP的客户端
时间: 2024-03-05 22:47:58 浏览: 163
基于C++11与boost库实现boost搜索引擎源码.zip
以下是一个基于boost库1.60实现的UDP客户端示例代码:
```c++
#include <iostream>
#include <boost/asio.hpp>
using boost::asio::ip::udp;
int main()
{
try
{
boost::asio::io_service io_service;
udp::socket socket(io_service, udp::endpoint(udp::v4(), 0));
udp::resolver resolver(io_service);
udp::resolver::query query(udp::v4(), "localhost", "12345");
udp::endpoint receiver_endpoint = *resolver.resolve(query);
std::string message = "Hello, world!";
socket.send_to(boost::asio::buffer(message), receiver_endpoint);
boost::array<char, 128> recv_buf;
udp::endpoint sender_endpoint;
size_t len = socket.receive_from(boost::asio::buffer(recv_buf), sender_endpoint);
std::cout.write(recv_buf.data(), len);
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}
```
在这个示例中,我们首先创建了一个'io_service'对象,并用它来初始化一个UDP socket。然后我们使用'resolver'对象来解析目标主机名和端口号,得到一个'endpoint'对象。接下来,我们将要发送的数据写入一个字符串变量中,并使用'send_to'函数将它发送到目标主机。最后,我们使用'receive_from'函数接收从目标主机返回的数据,并打印出来。
注意:在运行这个示例之前,你需要先在本地启动一个UDP服务器,并将其监听在12345端口上。
阅读全文