QT项目复习3——获取在线用户列表

2020-12-22  本文已影响0人  StevenHD
大纲

二、客户端

1.2 定时器


当时间到的时候,就触发sendList()函数(这里并不是服务器直接推送到各用户上,而是一个应答服务器

二、服务器端

每当一个用户进来,就在链表中插入一个节点

可以在结构体node中扩展,比如加入buf,加入name这些,我们的话这里就加入套接字socket即可——


ID就是套接字

将整个用户列表都填入到buf
4个字节一个单位的拷贝,将socket套接字拷贝到tmp缓冲区中,然后再将tmp填入buf中去,不断循环,直到链表结束。(往buf中填充所有的在线用户ID)

2.2 加入链表到服务器中

这里我们登录成功后,就插入新的节点(文件描述符)——

将send_buf传进去得到用户列表,然后send_buf在getlist()返回后,send_buf中就存储了用户列表的数据——


getlist()返回的是往send_buf中一共写了多少个字节

当跳出内层循环后,意味着这个套接字clntfd已经没用了,我们就关闭它,删除它。也意味着当前这个用户已经无效,可以去accept()接收其他用户的三次握手请求了。
上一篇下一篇

猜你喜欢

热点阅读