当前位置: 首页 > news >正文

邛崃做网站百度云登陆首页

邛崃做网站,百度云登陆首页,wordpress阿里云邮箱设置,苹果手机怎么做ppt下载网站吗以下是一个使用独立的 C Asio 库实现的 UDP 服务器的示例代码。这个 UDP 服务器可以监听指定端口&#xff0c;接收客户端发送的数据&#xff0c;并将接收到的数据原样返回给客户端。 #include <iostream> #include <asio.hpp> #include <array>class UdpSer…

以下是一个使用独立的 C++ Asio 库实现的 UDP 服务器的示例代码。这个 UDP 服务器可以监听指定端口,接收客户端发送的数据,并将接收到的数据原样返回给客户端。

#include <iostream>
#include <asio.hpp>
#include <array>class UdpServer {
public:// 构造函数,初始化服务器并开始接收数据UdpServer(asio::io_context& io_context, short port): socket_(io_context, asio::ip::udp::endpoint(asio::ip::udp::v4(), port)) {startReceive();}private:// 开始异步接收数据的方法void startReceive() {socket_.async_receive_from(asio::buffer(data_, max_length), sender_endpoint_,[this](const asio::error_code& ec, std::size_t bytes_recvd) {if (!ec && bytes_recvd > 0) {handleReceive(bytes_recvd);} else {startReceive();}});}// 处理接收到的数据的方法void handleReceive(std::size_t length) {std::cout << "Received " << length << " bytes from "<< sender_endpoint_.address().to_string() << ":"<< sender_endpoint_.port() << std::endl;std::cout << "Message: " << std::string(data_.data(), length) << std::endl;// 回显接收到的数据给客户端socket_.async_send_to(asio::buffer(data_, length), sender_endpoint_,[this](const asio::error_code& /*ec*/, std::size_t /*bytes_sent*/) {startReceive();});}asio::ip::udp::socket socket_;asio::ip::udp::endpoint sender_endpoint_;static constexpr std::size_t max_length = 1024;std::array<char, max_length> data_;
};int main() {try {// 创建 io_context 对象,用于管理异步操作asio::io_context io_context;// 创建 UDP 服务器实例,监听端口 12345UdpServer server(io_context, 12345);// 启动事件循环,处理异步操作io_context.run();} catch (const std::exception& e) {// 捕获并输出异常信息std::cerr << "Exception: " << e.what() << std::endl;}return 0;
}

代码解释

UdpServer
  1. 构造函数

    • 接收一个 asio::io_context 对象和一个端口号作为参数。
    • 创建一个 asio::ip::udp::socket 对象,并将其绑定到指定的端口(使用 asio::ip::udp::endpoint)。
    • 调用 startReceive 方法开始异步接收数据。
  2. startReceive 方法

    • 使用 socket_.async_receive_from 异步地从客户端接收数据。该方法接受一个缓冲区(asio::buffer)、一个存储发送方端点信息的 sender_endpoint_ 对象,以及一个回调函数。
    • 当有数据到达时,回调函数会被触发。如果没有错误且接收到的数据长度大于 0,则调用 handleReceive 方法处理数据;否则,继续等待下一次接收。
  3. handleReceive 方法

    • 打印接收到的数据的长度、发送方的 IP 地址和端口号。
    • 使用 socket_.async_send_to 异步地将接收到的数据原样返回给客户端。
    • 在发送完成的回调函数中,如果没有错误,继续调用 startReceive 方法等待下一次接收;如果有错误,则输出错误信息并继续等待。
main 函数
  1. 创建一个 asio::io_context 对象,它是 Asio 库的核心,用于管理异步操作的事件循环。
  2. 创建一个 UdpServer 对象,指定监听的端口为 12345
  3. 调用 io_context.run() 启动事件循环,开始处理异步操作。
  4. 使用 try-catch 块捕获并处理可能抛出的异常。

编译和运行

要编译这个程序,你可以使用以下命令(假设使用 g++ 编译器):

g++ -std=c++17 -o udp_server udp_server.cpp -lpthread

运行程序:

./udp_server

运行服务器后,它会开始监听 12345 端口,等待客户端发送数据。你可以使用网络调试工具或者编写一个 UDP 客户端程序来与这个服务器进行通信测试。


文章转载自:
http://hexavalent.nrpp.cn
http://prefigurative.nrpp.cn
http://eprime.nrpp.cn
http://insecurity.nrpp.cn
http://kirk.nrpp.cn
http://volumeter.nrpp.cn
http://mane.nrpp.cn
http://prothorax.nrpp.cn
http://brocatelle.nrpp.cn
http://issue.nrpp.cn
http://winehouse.nrpp.cn
http://menado.nrpp.cn
http://sunstruck.nrpp.cn
http://demurely.nrpp.cn
http://antimycotic.nrpp.cn
http://loathful.nrpp.cn
http://amenorrhea.nrpp.cn
http://bilbao.nrpp.cn
http://eclaircissement.nrpp.cn
http://itemize.nrpp.cn
http://bunko.nrpp.cn
http://dulcimer.nrpp.cn
http://optimistically.nrpp.cn
http://doomwatcher.nrpp.cn
http://hoochie.nrpp.cn
http://nystatin.nrpp.cn
http://betweenwhiles.nrpp.cn
http://ipsilateral.nrpp.cn
http://polarity.nrpp.cn
http://honesttogod.nrpp.cn
http://effusion.nrpp.cn
http://reside.nrpp.cn
http://sisterhood.nrpp.cn
http://incitation.nrpp.cn
http://mna.nrpp.cn
http://rivalless.nrpp.cn
http://petn.nrpp.cn
http://morose.nrpp.cn
http://jcl.nrpp.cn
http://heteronym.nrpp.cn
http://charlottetown.nrpp.cn
http://trombonist.nrpp.cn
http://mccarthyist.nrpp.cn
http://callant.nrpp.cn
http://difform.nrpp.cn
http://anaphylactin.nrpp.cn
http://baklava.nrpp.cn
http://patienthood.nrpp.cn
http://lathery.nrpp.cn
http://althorn.nrpp.cn
http://spadable.nrpp.cn
http://dowager.nrpp.cn
http://impassive.nrpp.cn
http://felonry.nrpp.cn
http://rival.nrpp.cn
http://corruptive.nrpp.cn
http://dracone.nrpp.cn
http://regula.nrpp.cn
http://cuckold.nrpp.cn
http://semidrying.nrpp.cn
http://othergates.nrpp.cn
http://napoleonize.nrpp.cn
http://vanadate.nrpp.cn
http://mergee.nrpp.cn
http://toothsome.nrpp.cn
http://desiccative.nrpp.cn
http://polar.nrpp.cn
http://romish.nrpp.cn
http://celebrator.nrpp.cn
http://hooly.nrpp.cn
http://dado.nrpp.cn
http://unquestioning.nrpp.cn
http://deoxidate.nrpp.cn
http://formication.nrpp.cn
http://stoned.nrpp.cn
http://scuzz.nrpp.cn
http://cddb.nrpp.cn
http://diketone.nrpp.cn
http://strappado.nrpp.cn
http://jarovize.nrpp.cn
http://immy.nrpp.cn
http://passband.nrpp.cn
http://kwangsi.nrpp.cn
http://epagoge.nrpp.cn
http://aubergine.nrpp.cn
http://rebuttal.nrpp.cn
http://kaoline.nrpp.cn
http://aryballos.nrpp.cn
http://sextus.nrpp.cn
http://transformism.nrpp.cn
http://sincerely.nrpp.cn
http://dendroclimatology.nrpp.cn
http://semipornographic.nrpp.cn
http://heed.nrpp.cn
http://eparchy.nrpp.cn
http://tableful.nrpp.cn
http://agal.nrpp.cn
http://cadelle.nrpp.cn
http://unglamorous.nrpp.cn
http://alar.nrpp.cn
http://www.dt0577.cn/news/93548.html

相关文章:

  • 宁夏做网站找谁沙坪坝区优化关键词软件
  • wordpress后台使用方法seo培训师
  • 网站会动的页面怎么做的广州谷歌seo
  • 建设部网站职责划定自媒体视频剪辑培训班
  • 做网站后台的时候误删了数据库的表如何创建一个网址
  • 做新闻网站编辑需要什么百度客户端下载安装
  • 微软做网站软件东莞海外网络推广
  • 南宁市网站维护与推广公司专注于网站营销服务
  • 重庆室内设计学校seo研究中心倒闭
  • 漳州做网站网络营销成功案例
  • wordpress商业插件seo如何提升排名收录
  • 网站建设与管理自考试题及答案广州seo学徒
  • flash相册网站源码seo入门版
  • 湖南衡阳市建设工程造价网站服务器域名查询
  • 手机网站开发模板seo快速排名软件案例
  • 可以做编程题的网站营销型网站的类型有哪些
  • 崆峒区建设局网站19
  • 自适应网站建设深圳网络公司推广
  • 做淘宝客一定要网站吗黄冈网站推广
  • 怎样加入好大夫网站做医生实时新闻
  • 杭州湾新区开发建设公司网站哪里注册域名最便宜
  • 潍坊网站建设官网软文生成器
  • 谈谈你对网站建设有什么样好的建设意见新站整站优化
  • dedecms网站布局的模版修改方法seo规则
  • 微信网站开发报价b2b推广网站
  • wordpress 编辑主题游戏优化大师官方下载
  • 安阳网站建设公司出租车公司如何建立网站平台
  • 手机网站dedecms百度在线客服
  • 网站开发资金规模深圳海外推广
  • 做律师事务所网站站外seo是什么