码迷,mamicode.com
首页 > 其他好文 > 详细

boost asio库 同步socket连接示例

时间:2014-06-28 09:24:33      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:boost   c++   asio   

<pre name="code" class="cpp">///////////////////////////////////////
//  Asio同步socket连接示例
//
#include <iostream>
#include <boost/thread.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio.hpp>
using namespace boost;
typedef boost::asio::io_service IoService;
typedef boost::asio::ip::tcp TCP;
bool flag=true;

void client()  
{
    int i=0;
    while(i++<10)
    {
        this_thread::sleep(posix_time::seconds(1)); //延时函数
        try
        {
        IoService ios;
        TCP::socket so(ios);
        TCP::endpoint ep(asio::ip::address::from_string("127.0.0.1"),9999); //绑定对方的ip和端口
        so.connect(ep);
        char str[100]={0};
        so.read_some(asio::buffer(str)); //接收服务器端送回的消息
        std::cout<<"client: read from ser:"<<str<<std::endl;

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

int main()
{
try
{
    IoService ios;
    TCP::acceptor my_acceptor(ios,TCP::endpoint(TCP::v4(),9999));  //服务器段绑定协议和端口
    std::cout<<my_acceptor.local_endpoint().address()<<std::endl;

    thread tc(&client);  //开一个线程执行客户端
    while(flag) //服务器端循环接收客户端socket
    {
        std::cout<<"waiting for client..."<<std::endl;
        TCP::socket mysocket(ios);
        my_acceptor.accept(mysocket);  
        mysocket.write_some(asio::buffer("hahahahah")); //向客户端写数据
    }
    tc.join();
}
catch(std::exception&e)
{
    std::cout<<e.what()<<std::endl;
}
    return 0;
}


boost asio库 同步socket连接示例,布布扣,bubuko.com

boost asio库 同步socket连接示例

标签:boost   c++   asio   

原文地址:http://blog.csdn.net/cyg0810/article/details/35276521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!