Boost Asio总结(16)同步通信例子

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Boost Asio总结(16)同步通信例子相关的知识,希望对你有一定的参考价值。

1. server

#include "stdafx.h"
#include <iostream>
#include <boost/asio.hpp>

using namespace boost::asio;
using namespace std;

int main()

    try
    
        typedef ip::tcp::acceptor acceptor_type;
        typedef ip::tcp::endpoint endpoint_type;
        typedef ip::tcp::socket socket_type;

        std::cout<<"Server start."<<endl;
        io_service io;
        acceptor_type acceptor(io, endpoint_type(ip::tcp::v4(), 6688));
        std::cout<<acceptor.local_endpoint().address()<<endl;

        for (;;)
        
            socket_type sock(io);
            acceptor.accept(sock);

            std::cout<<"Client";
            std::cout<<sock.remote_endpoint().address()<<endl;
            sock.send(buffer("Hello asio"));
        
    
    catch (std::exception &e)
    
        std::cout<<e.what()<<endl;
    

    return 0;

2. client

#include "stdafx.h"
#include <iostream>
#include <boost/asio.hpp>

using namespace boost::asio;
using namespace std;

int main()

    try
    
        typedef ip::tcp::acceptor acceptor_type;
        typedef ip::tcp::endpoint endpoint_type;
        typedef ip::tcp::socket socket_type;
        typedef ip::address address_type;

        std::cout<<"Client start."<<endl;
        io_service io;
        socket_type sock(io);
        endpoint_type ep(address_type::from_string("127.0.0.1"), 6688);

        sock.connect(ep);

        vector<char> str(100, 0);
        boost::system::error_code ec;
        for (;;)//循环接收
        
            sock.read_some(buffer(str), ec);
            if (ec)
            
                break;
            
            cout<<&str[0];
        
        // 析构自动断开连接
    
    catch (std::exception &e)
    
        std::cout<<e.what()<<endl;
    
    return 0;


【引用】

[1] 代码asio/eg2/sync

以上是关于Boost Asio总结(16)同步通信例子的主要内容,如果未能解决你的问题,请参考以下文章

Boost Asio总结(16)例子

Boost Asio总结同步通信

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

Boost Asio总结(16)httpServer例子

Boost Asio总结异步通信

使用Boost asio实现同步的TCP/IP通信