同步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
分享到:
相关推荐
在`boost_asio_http_sample`这个压缩包中,应该包含有完整的示例代码,你可以通过查看这些代码来进一步学习和理解如何在C++中使用Boost.Asio实现HTTP GET和POST请求。记得根据实际需求进行修改,例如处理HTTPS连接、...
**Boost ASIO C++ 网络编程 中文版 带全书所有例子代码** Boost ASIO 是一个用于编写异步网络应用程序的库,它为C++开发者提供了强大而灵活的工具。这本书《Boost.Asio C++ Network Programming》中文版,结合了...
C++ Boost ASIO库是C++开发者用于网络编程的一个强大工具,它提供了高效、灵活的异步I/O操作。在TCP(传输控制协议)网络通信中,Boost.ASIO允许开发人员实现高效的文件传输,尤其是在大数据量的情况下。在这个场景...
**基于Boost.ASIO库的C++ HTTP/HTTPS Web服务器** 在C++编程领域,构建一个Web服务器是一项挑战,但有了Boost库的支持,这个过程变得更为便捷。Boost.ASIO库是Boost库的一部分,它提供了异步I/O操作,使得处理网络...
C++ Boost Asio 是一个强大的网络编程库,它为C++开发者提供了低级网络操作的高级接口,包括处理TCP、UDP、套接字、多路复用器等。Asio的设计理念是异步非阻塞,这使得它在处理并发连接和高吞吐量时非常高效。下面将...
在《Boost.Asio C++ Network Programming》中,你将学习如何使用Boost.Asio编写高效的网络服务器和客户端,如何处理并发连接,以及如何利用Asio的高级特性如strand和work对象来解决并发问题和防止资源泄露。...
**入门阶段**,读者会学习如何安装和配置Boost.Asio,包括编译Boost库以获得Asio组件。理解Boost.Asio的历史和依赖关系有助于开发者更好地适应其工作方式。此外,书中还会介绍一些重要的宏,这些宏在编写网络应用时...
Boost ASIO是C++库中的一个强大工具,用于进行异步网络编程。它提供了一种统一的接口,可以处理各种I/O操作,包括TCP、UDP、套接字、多路复用、本地进程通信等。在C++网络编程中,Boost ASIO是一个不可或缺的组件,...
标题《Boost.Asio C++ Network Programming》和描述表明本文档是一本关于使用Boost.Asio库进行C++网络编程的电子书。网络编程是一项要求严谨的复杂任务,涉及底层的网络通信和协议处理。Boost.Asio提供了一种简便的...
《Boost.Asio C++ Network Programming》是一本深入探讨C++网络编程的专业书籍,主要...通过学习这本书,你可以掌握使用Boost.Asio库构建高效、可靠的网络应用程序的方法,为你的C++职业生涯增添一项重要的技术武器。
10. **学习资源**:"Boost ASIO C++ 网络编程 中文版(实例不完整).pdf"可能是该主题的一个教程或指南,可以帮助初学者快速上手Boost ASIO,了解如何利用其功能进行网络编程。 通过深入学习和实践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++ 网络编程知识点 ...这本书是由C++专家John Torjo编写,提供了对Boost.Asio库的深入介绍,并包含丰富的实例代码,涵盖了从基础到高级的网络编程技巧,适合C++程序员学习和参考。
《Boost.Asio.C++.Network.Programming.》是关于使用C++进行网络编程的一份资源,主要聚焦于Boost.Asio库的使用。Boost.Asio是一个强大的、跨平台的库,用于处理I/O操作,如网络通信,它使得在C++中编写并发、异步...
#### 二、Boost Asio 基本原理 ##### 2.1 网络 API - **封装层**:Boost Asio 提供了一套高级 API 来封装底层网络接口。 - **跨平台性**:支持多种操作系统下的网络编程。 ##### 2.2 Boost Asio 命名空间 - **组织...
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库进行反射”是针对C++编程语言实现的一套RPC框架,利用了Boost库的强大功能来提高其效率和可维护性。 首先,让我们详细了解一下关键组件: 1. **Boost...
通过对这些知识点的学习和实践,开发者能够熟练掌握使用Boost.Asio进行高效、可靠的网络编程,无论是在服务器端还是客户端,都能构建出强大的网络应用。在深入研究源码和示例的过程中,你将对C++17和Boost.Asio有更...