boost库1.70,udp建立连接,写一个服务端,指定本地IP和端口号6179,举例说明
时间: 2024-03-19 10:44:29 浏览: 88
Boost开发平台搭建附带一个实例
使用boost库的UDP服务端,可以通过指定本地IP和端口号来监听指定的网络接口。以下是一个示例代码:
```c++
#include <iostream>
#include <boost/asio.hpp>
int main() {
boost::asio::io_context io_context;
boost::asio::ip::udp::socket socket(io_context,
boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("192.168.0.100"), 6179));
// 定义一个接收缓存区
std::array<char, 1024> recv_buffer;
while (true) {
boost::asio::ip::udp::endpoint remote_endpoint;
boost::system::error_code error;
// 接收数据
size_t recv_len = socket.receive_from(
boost::asio::buffer(recv_buffer), remote_endpoint, 0, error);
if (error && error != boost::asio::error::message_size) {
std::cout << "error: " << error.message() << std::endl;
break;
}
// 输出接收到的数据
std::cout << "Received " << recv_len << " bytes from "
<< remote_endpoint.address().to_string() << ":" << remote_endpoint.port() << std::endl;
std::cout.write(recv_buffer.data(), recv_len);
std::cout << std::endl;
}
return 0;
}
```
上述代码中,通过`boost::asio::ip::address::from_string()`函数指定本地IP地址为192.168.0.100,端口号为6179。然后,使用`boost::asio::ip::udp::endpoint`类创建一个端点对象,并将其作为参数传递给`boost::asio::ip::udp::socket`构造函数,以指定服务端要监听的网络接口。
需要注意的是,上述代码中的IP地址和端口号都需要根据实际情况进行修改。同时,还需要考虑异常处理、多线程处理等问题。
阅读全文