143  
查询码:00000126
如何同步登录结果
作者: 董康康 于 2020年04月23日 发布在分类 / 物联网组 / 第三方代理网关 下,并于 2020年04月23日 编辑

1.问题的出现

    在编写TCP客户端时,如果用一个线程发送数据,一个线程接收数据,那么如何同步登录结果是一个麻烦的事情(在进行任何操作之前必须先登录),因为登录的时候需要考虑三件事情:

        (1)接收数据和发送数据不在同一个线程,如何同步

        (2)第一件是tcp本身可能会分包

        (3)第二件事情,不能保证你发出去的包一定会有回复,所以应当有一个超时


2.问题解决

利用c++11的condition_variable编写一个同步类,利用其wait_for的函数实现等待并支持超时,在处理完分包之后使用notity_all函数实现同步。



 推荐知识

 历史版本

修改日期 修改人 备注
2020-04-23 15:03:26[当前版本] 董康康 创建版本

知识分享平台 -V 4.8.7 -wcp