首页 > 代码库 > boost asio库 同步socket连接示例
boost asio库 同步socket连接示例
<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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。