【发布时间】:2015-10-15 11:13:57
【问题描述】:
我正在编写一些 asio/tcp 服务器,并希望将本机套接字描述符映射到 tcp 会话标识符。 我正在写 id getter 之类的:
inline int get_session_id() { return socket_.native_handle(); }
并从第二个(数据包调度线程)线程调用:
cout << session_shared_ptr->get_session_id() << endl;
并且它只在第一次写入有效 id,所以我猜我的实现中的某些东西是不好的。
谁能告诉我我哪里做错了?
【问题讨论】:
-
当您说“第一次”时,我假设您在执行输出语句的时间之间做了一些事情?如果您执行两个相邻的输出语句,它是否工作良好?代码中的第一个和第二个输出之间会发生什么?两个输出之间的连接会发生什么?
-
服务器收到两条消息,传递pair
到队列和第二个线程唤醒和解析消息;消息解析没问题,session ptr 也有效,但 session id 无效
标签: c++ linux sockets posix boost-asio