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:"<'\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:"<'\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:"<'\n';  
        break;  
    }  
    buf[len]='\0';  
    cout<'\n'  

你可能感兴趣的:(C++)