codecamp

Boost.Asio c++ 网络编程翻译(23)

void start() {
       ...
       do_read(); // first, we wait for client to login
   }
   void on_read(const error_code & err, size_t bytes) {
       std::string msg(read_buffer_, bytes);
       if ( msg.find("login ") == 0) on_login(msg);
       else if ( msg.find("ping") == 0) on_ping();

else ... }

   void on_login(const std::string & msg) {
       std::istringstream in(msg);
       in >> username_ >> username_;
       do_write("login ok\n");
   }
   void do_write(const std::string & msg) {
       std::copy(msg.begin(), msg.end(), write_buffer_);
       sock_.async_write_some( buffer(write_buffer_, msg.size()),
                               MEM_FN2(on_write,_1,_2));
   }
   void on_write(const error_code & err, size_t bytes) {

do_read(); } 

Boost.Asio c++ 网络编程翻译(22)
Boost.Asio c++ 网络编程翻译(24)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }