boost::system::error_code ec 用法

// setp 1: 创建一个 io_service实例  
boost::asio::io_service svc;  

// step 2: 创建一个 tcp::socket对象,现在还不能用于收发数据  
tcp::socket sock(svc);  

// step 3: 创建一个指向服务器的地址对象,用于 socket.connect()操作  
tcp::endpoint addr(address::from_string(argv[1]),atoi(argv[2]));  

boost::system::error_code ec;  

// step 4: 主动发起到服务器端的连接,该操作如果成功执行,则sock对象可以用于收发数据  
sock.connect(addr,ec);  
if(ec)  
{  
     cerr<<"sock.connect():An error occurred:"<<ec.message()<<'\n';  
     return -1;  
}  

while(getline(cin,msg))  
{  
    if("quit"==msg)  
        break;  
    if(msg.empty())  
        continue; //继续下次循环  

// step 5: 向服务器发送消息  
    boost::asio::write(sock,boost::asio::buffer(msg),boost::asio::transfer_all(),ec);  
    if(ec)  
    {  
        cerr<<"wrire(): An error occurred:"<<ec.message()<<'\n';  
        break;  
    }  

// step 6: 从服务器接收消息  
    size_t len=sock.read_some(boost::asio::buffer(buf,sizeof buf-1),ec);  
    if(ec)  
    {  
        cerr<<"sock.read_some(): An error occurred:"<<ec.message()<<'\n';  
        break;  
    }  
    buf[len]='\0';  
    cout<<buf<<'\n'  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值