使用boost :: asio进行简单的UDP通信
Using boost::asio for simple udp communication
这是一个简单的问题,但我似乎无法弄清楚我在做什么错。我正在尝试使用Boost读取发送到客户端端口的数据,并且我有以下代码设置1(UDP客户端,2(用于阅读的缓冲区和3(试图从套接字阅读:
// Set up the socket to read UDP packets on port 10114
boost::asio::io_service io_service;
udp::endpoint endpoint_(udp::v4(), 10114);
udp::socket socket(io_service, endpoint_);
// Data coming across will be 8 bytes per packet
boost::array<char, 8> recv_buf;
// Read data available from port
size_t len = socket.receive_from(
boost::asio::buffer(recv_buf,8), endpoint_);
cout.write(recv_buf.data(), len);
问题是recieve_from
功能永远不会返回。服务器正在另一台计算机上运行并连续生成数据。我可以使用Wireshark在本地计算机上看到此端口的流量。那么,我在这里做错了什么?
因此,事实证明,我需要在该端口上收听来自任何地方的连接。因此,端点需要设置为
boost::asio::ip::udp::endpoint endpoint_(boost::asio::ip::address::from_string("0.0.0.0"), 10114);
使用此设置,我会收回我期望的数据。FYI,0.0.0.0与INADDR_ANY
。
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 从udp接收帧对于人脸识别来说太慢
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 使用boost :: asio进行简单的UDP通信
- select() 在一个简单的自制 p2p 程序中与 udp 交换"musicdata"的问题
- 在c++中使用UDP进行简单的选择实现
- 为游戏(和其他任务)提供简单而有效的UDP服务器策略
- 简单UDP套接字代码,发送和接收消息