boost::asio::ip::tcp实现网络通信的小例子

来源:互联网 发布:ubuntu设置ip自动获取 编辑:程序博客网 时间:2024/05/13 03:18
#include <iostream>#include <boost/asio.hpp>using namespace boost::asio;//服务端int main(void){// 所有asio类都需要io_service对象io_service iosev;ip::tcp::acceptor acceptor(iosev,ip::tcp::endpoint(ip::tcp::v4(), 1000));for (;;){// socket对象ip::tcp::socket socket(iosev);// 等待直到客户端连接进来acceptor.accept(socket);// 显示连接进来的客户端std::cout << socket.remote_endpoint().address() << std::endl;// 向客户端发送hello world!boost::system::error_code ec;socket.write_some(buffer("hello world!"), ec);// 如果出错,打印出错信息if (ec){std::cout <<boost::system::system_error(ec).what() << std::endl;break;}// 与当前客户交互完成后循环继续等待下一客户连接}return 0;}/*127.0.0.1*/



#include <iostream>#include <boost/asio.hpp>using namespace boost::asio;//客户端int main(void){// 所有asio类都需要io_service对象io_service iosev;// socket对象ip::tcp::socket socket(iosev);// 连接端点,这里使用了本机连接,可以修改IP地址测试远程连接ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1000);// 连接服务器boost::system::error_code ec;socket.connect(ep, ec);// 如果出错,打印出错信息if (ec){std::cout << boost::system::system_error(ec).what() << std::endl;return -1;}// 接收数据char buf[100];size_t len = socket.read_some(buffer(buf), ec);std::cout.write(buf, len);return 0;}/*hello world!*/


#include <iostream>#include <boost/asio.hpp>using namespace boost::asio;//客户端int main(void){// 所有asio类都需要io_service对象io_service iosev;// socket对象ip::tcp::socket socket(iosev);// 连接端点,这里使用了本机连接,可以修改IP地址测试远程连接ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1000);// 连接服务器boost::system::error_code ec;socket.connect(ep, ec);// 如果出错,打印出错信息if (ec){std::cout << boost::system::system_error(ec).what() << std::endl;return -1;}// 接收数据char buf[100];size_t len = socket.read_some(buffer(buf), ec);std::cout.write(buf, len);return 0;}/*hello world!*/



0 0
原创粉丝点击