`
amornio19840908
  • 浏览: 56832 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++ boost asio 学习(二)

    博客分类:
  • C++
阅读更多
同步socket例子

服务端
#include <ctime>
#include <iostream>
#include <string>
#include <boost/asio.hpp>

using namespace std;

int main() {
	try
	{
		cout << "server start..." << endl;
		boost::asio::io_service ios;
		boost::asio::ip::tcp::acceptor acceptor(ios, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 6688));

		cout << acceptor.local_endpoint().address() << endl;

		while (true)
		{
			boost::asio::ip::tcp::socket sock(ios);
			acceptor.accept(sock);

			cout << "cliend:";
			cout << sock.remote_endpoint().address() << endl;

			sock.write_some(boost::asio::buffer("hello asio"));
		}

	}
	catch(std::exception& e)
	{
		cout << e.what() << endl;
	}

}


客户端
#include <ctime>
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#include <vector>
#include <boost/bind.hpp>

using namespace std;

int main() {

	boost::asio::io_service ios;

	cout << "client start..." << endl;
	try
	{
		boost::asio::ip::tcp::socket sock(ios);
		boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address::from_string("127.0.0.1"), 6688);

		sock.connect(ep);

		vector<char> str(100, 0); // 定义一个vector缓冲区
		sock.read_some(boost::asio::buffer(str)); // 使用buffer()包装缓冲区接收数据
		cout << "recive from " << sock.remote_endpoint().address() << endl;
		cout << &str[0] << endl;// 输出接收到的字符串
	}
	catch (std::exception& e)
	{
		cout << e.what() << endl;
	}

	ios.run();

	return 0;
}


运行结果:
服务端:
server start...
0.0.0.0
cliend:127.0.0.1

客户端:
client start...
recive from 127.0.0.1
hello asio
分享到:
评论

相关推荐

    c++ boost asio http get post请求

    在`boost_asio_http_sample`这个压缩包中,应该包含有完整的示例代码,你可以通过查看这些代码来进一步学习和理解如何在C++中使用Boost.Asio实现HTTP GET和POST请求。记得根据实际需求进行修改,例如处理HTTPS连接、...

    Boost ASIO C++ 网络编程 中文版 带全书所有例子代码

    **Boost ASIO C++ 网络编程 中文版 带全书所有例子代码** Boost ASIO 是一个用于编写异步网络应用程序的库,它为C++开发者提供了强大而灵活的工具。这本书《Boost.Asio C++ Network Programming》中文版,结合了...

    c++ boost asio网络库 异步tcp方式文件传输 速度在10M左右.zip

    C++ Boost ASIO库是C++开发者用于网络编程的一个强大工具,它提供了高效、灵活的异步I/O操作。在TCP(传输控制协议)网络通信中,Boost.ASIO允许开发人员实现高效的文件传输,尤其是在大数据量的情况下。在这个场景...

    基于boost.asio库的C++http/https web server

    **基于Boost.ASIO库的C++ HTTP/HTTPS Web服务器** 在C++编程领域,构建一个Web服务器是一项挑战,但有了Boost库的支持,这个过程变得更为便捷。Boost.ASIO库是Boost库的一部分,它提供了异步I/O操作,使得处理网络...

    C++ Boost Asio 网络库 讲解示例代码

    C++ Boost Asio 是一个强大的网络编程库,它为C++开发者提供了低级网络操作的高级接口,包括处理TCP、UDP、套接字、多路复用器等。Asio的设计理念是异步非阻塞,这使得它在处理并发连接和高吞吐量时非常高效。下面将...

    Boost.Asio C++ Network Programming_Network_C++_ASIO_boost.asio_B

    在《Boost.Asio C++ Network Programming》中,你将学习如何使用Boost.Asio编写高效的网络服务器和客户端,如何处理并发连接,以及如何利用Asio的高级特性如strand和work对象来解决并发问题和防止资源泄露。...

    Boost.Asio C++ 网络编程.pdf

    **入门阶段**,读者会学习如何安装和配置Boost.Asio,包括编译Boost库以获得Asio组件。理解Boost.Asio的历史和依赖关系有助于开发者更好地适应其工作方式。此外,书中还会介绍一些重要的宏,这些宏在编写网络应用时...

    Boost ASIO C++ 网络编程

    Boost ASIO是C++库中的一个强大工具,用于进行异步网络编程。它提供了一种统一的接口,可以处理各种I/O操作,包括TCP、UDP、套接字、多路复用、本地进程通信等。在C++网络编程中,Boost ASIO是一个不可或缺的组件,...

    Boost.Asio C++ Network Programming.pdf

    标题《Boost.Asio C++ Network Programming》和描述表明本文档是一本关于使用Boost.Asio库进行C++网络编程的电子书。网络编程是一项要求严谨的复杂任务,涉及底层的网络通信和协议处理。Boost.Asio提供了一种简便的...

    Boost.Asio C++ Network Programming(高清,带书签,可复制)

    《Boost.Asio C++ Network Programming》是一本深入探讨C++网络编程的专业书籍,主要...通过学习这本书,你可以掌握使用Boost.Asio库构建高效、可靠的网络应用程序的方法,为你的C++职业生涯增添一项重要的技术武器。

    Boost ASIO C++ 网络编程-带实例

    10. **学习资源**:"Boost ASIO C++ 网络编程 中文版(实例不完整).pdf"可能是该主题的一个教程或指南,可以帮助初学者快速上手Boost ASIO,了解如何利用其功能进行网络编程。 通过深入学习和实践Boost ASIO,...

    boost-asio-cpp-network-programming.zip_BOOST教程_Boost_boost asio

    Boost.Asio是Boost库的一部分,专为C++设计,用于处理I/O操作,如网络通信。这个库提供了低级和高级的接口,使得开发者能够高效地编写并发网络应用程序。Boost.Asio的核心在于其异步模型,它支持多种协议,包括TCP、...

    Boost.Asio C++ Network Programming Cookbook.pdf

    Boost.Asio C++ Network Programming Cookbook.pdf Boost.Asio C++ Network Programming Cookbook.pdf

    Boost.Asio C++ 网络编程 中文版

    ### Boost.Asio C++ 网络编程知识点 ...这本书是由C++专家John Torjo编写,提供了对Boost.Asio库的深入介绍,并包含丰富的实例代码,涵盖了从基础到高级的网络编程技巧,适合C++程序员学习和参考。

    Boost.Asio.C++.Network.Programming.

    《Boost.Asio.C++.Network.Programming.》是关于使用C++进行网络编程的一份资源,主要聚焦于Boost.Asio库的使用。Boost.Asio是一个强大的、跨平台的库,用于处理I/O操作,如网络通信,它使得在C++中编写并发、异步...

    C++中文版网络编程boost asio.docx

    #### 二、Boost Asio 基本原理 ##### 2.1 网络 API - **封装层**:Boost Asio 提供了一套高级 API 来封装底层网络接口。 - **跨平台性**:支持多种操作系统下的网络编程。 ##### 2.2 Boost Asio 命名空间 - **组织...

    Boost.Asio C++ Network Programming Cookbook 原版pdf by Radchuk

    The Boost.Asio library is aimed at reducing accidental complexity by introducing type systems and exploiting object-oriented methods, and decreasing the development time by providing high degrees of ...

    C++RPC基于boost.asio、boost.serialization等boost库进行反射.zip

    本项目“C++ RPC基于boost.asio、boost.serialization等boost库进行反射”是针对C++编程语言实现的一套RPC框架,利用了Boost库的强大功能来提高其效率和可维护性。 首先,让我们详细了解一下关键组件: 1. **Boost...

    Boost.Asio c++网络编程源码

    通过对这些知识点的学习和实践,开发者能够熟练掌握使用Boost.Asio进行高效、可靠的网络编程,无论是在服务器端还是客户端,都能构建出强大的网络应用。在深入研究源码和示例的过程中,你将对C++17和Boost.Asio有更...

Global site tag (gtag.js) - Google Analytics