基于boost库1.60,写一个基于UDP通信的程序。
时间: 2024-02-28 18:57:16 浏览: 22
好的,以下是一个简单的基于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(), 12345));
while (true) {
char recv_buffer[1024];
udp::endpoint remote_endpoint;
boost::system::error_code error;
socket.receive_from(boost::asio::buffer(recv_buffer), remote_endpoint, 0, error);
if (error && error != boost::asio::error::message_size) {
throw boost::system::system_error(error);
}
std::string message(recv_buffer);
std::cout << "Received message: " << message << std::endl;
}
} catch (std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
```
这个程序创建了一个UDP socket,并监听本地端口号12345。然后在一个无限循环中,不停地接收来自远端的UDP消息,并将消息内容输出到终端。
你可以将这个程序保存到一个.cpp文件中,并使用boost库进行编译链接,如:
```
g++ -std=c++11 -I/path/to/boost_1_60_0 -L/path/to/boost_1_60_0/stage/lib -o udp_server udp_server.cpp -lboost_system -lpthread
```
其中,/path/to/boost_1_60_0是你的boost库所在路径。