![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
项目
文章平均质量分 77
吾观风月
心事跋山涉水,落下温柔几许。
展开
-
在linux下实现简单聊天系统(一)项目基本框架内容
项目主要实现的功能:注册,登陆,获取好友列表,一对一聊天,消息群发,离线消息缓存,下线。需要的工具:libevent,json,mysql,memcached开发平台:vmware基本项目思路: 客户端:利用多线程实现,采取输入命令的方式让用户选择服务类型,根据不同的服务类型调用不同的处理函数,完成请求,利用json和自定义的上层协议完成和服务器端的数据的交互。在登陆成功之后启动一...原创 2017-11-30 19:53:25 · 6407 阅读 · 2 评论 -
在linux下实现简单聊天系统(二)客户端的具体实现
客户端实现的具体内容:利用多线程实现,采取输入命令的方式让用户选择服务类型,根据不同的服务类型调用不同的处理函数,完成请求,利用json和自定义的上层协议完成和服务器端的数据的交互。在登陆成功之后启动一个线程用于接受服务器端的消息。通过socket进行服务器连接,之后绑定信号处理函数,让用户选择“注册”,“登陆”,“推出”等操作。其中操作具体实现都用json包进行发送,在服务器端接收后,进行解析,...原创 2018-03-07 21:05:45 · 1934 阅读 · 0 评论 -
在linux下实现简单聊天系统(三)服务器
我们在在一个主线程进行创建监听套接字,创建线程个数个双向管道(用双向管道因为消息发送是全双工的),创建cpu内核个数-1个子线程,利用libevent监听监听套接字和双向管道的一端,接受客户端连接,为客户端选择处理消息的子线程。在子线程中,我们分别创建三个子线程来分别完成相应的功能。子线程1负责通过sock_pair双向管道进行与主线程的信息交换,用同一个套接字cli_fd可以让用户选择不同模原创 2018-03-12 15:38:57 · 1548 阅读 · 0 评论