|
boost_asio_tcp服务器端提供时间服务
- #include <ctime>
- #include <iostream>
- #include <string>
- #include <boost/asio.hpp>
- using boost::asio::ip::tcp;
- std::string make_daytime_string(){
- using namespace std;
- auto now = time(nullptr);
- return ctime(&now); //返回 const char *
- }
- int main(int argc, char *argv[]){
- std::cout << "boost_asio_tcp服务器端提供时间服务.cpp!" << std::endl;
- try
- {
- boost::asio::io_service io_service;
- // 服务器监听这个端口 服务器绑定地址和端口
- // linux下凡是要绑定1024以下的端口 系统的端口 需要root权限运行
- tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 13));
- std::cout << "服务器开启了!\n";
- for(;;){
- tcp::socket socket(io_service);
- // 阻塞的
- acceptor.accept(socket);
- auto message = make_daytime_string();
- boost::system::error_code ignored_error;
- std::cout << "服务器写给客户端的socket:" << message << std::endl;
- // 写给客户端socket
- boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
- }
- // 这里没有输出 其实是有问题的!
- std::cout << "服务器结束了!\n";
- }
- catch(const std::exception& e)
- {
- std::cerr << "异常:" << e.what() << '\n';
- }
-
- return 0;
- }
复制代码
|
|