boost asio 多线程同步服务器

匿名 (未验证) 提交于 2019-12-03 00:22:01
#include<iostream> #include<stdlib.h> #include<boost\asio.hpp> #include<boost\thread.hpp> using namespace std; using namespace boost::asio; void doing(boost::shared_ptr<ip::tcp::socket> sock); int main(){  	typedef boost::shared_ptr<ip::tcp::socket> socket_ptr; 	io_service service; 	ip::tcp::endpoint ep(ip::tcp::v4(), 2001); // listen on 2001 	ip::tcp::acceptor acc(service, ep); 	while (true)  	{ 		socket_ptr sock(new ip::tcp::socket(service)); 		acc.accept(*sock); 		boost::function0<void> f = boost::bind(doing,sock); 		boost::thread t(f); 		 	}   	system("pause"); 	return 1; } void doing(boost::shared_ptr<ip::tcp::socket> sock) { 	while (true) { 		try{ 			char data[512]; 			 			size_t len = sock->read_some(buffer(data)); 			if (len > 0) 				write(*sock, buffer(data, len)); 		} 		catch (boost::system::system_error e) 		{ 			cout << e.code() << endl; 			return; 		} 		 	} }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!