Labview实例——像QQ一样的聊天室程序

计算机网络 TOMORROW 2年前 (2018-06-15) 10491次浏览 21个评论 扫描二维码

客户端 VI 程序

作为与用户直接接触的存在,具有一个用户体验良好的前面板,并且需要完成上层通信协议的实现和对服务器 VI 的调用。

Labview 实例——像 QQ 一样的聊天室程序

  • 客户端程序运行时首先对前面板的控件进行“禁用”属性设置,接着,等待事件发生。
  • 当 Create 按钮事件触发时,客户端程序将传递一个“真”常量给服务器子 VI,服务器子 VI 程序就会开启并运行服务。

Labview 实例——像 QQ 一样的聊天室程序

  • 若是 Join 事件被触发,那么客户端程序将传递一个“假”常量给服务器子 VI,服务器子 VI 则不会开启服务。

Labview 实例——像 QQ 一样的聊天室程序

  • 当 Create 事件或是 Join 事件被触发后都会进入到状态机模式,状态机模式有三个状态,分别是 initial、receive 和 send。首先进入的是 initial 状态,initial 状态会根据用户输入的 IP 和端口号与服务器建立连接,若是建立连接成功,则会进入到 send 状态;若是建立连接失败,则会重复建立连接若干次,连续若干次失败后就会退出状态机,结束整个程序。

Labview 实例——像 QQ 一样的聊天室程序

  • 在 send 的状态中,会检测 Send 按钮是否被按下,若被按下则会将用户输入框中的内容,用户昵称按照通信协议打包并发送到服务器;若 Send 按钮没有被按下,则会进入一个“假”的条件分支中,在该分支中通过一个累加器实现,该分支每运行 10 次就会发送一个“ONLINE”+ 用户昵称 的在线状态指令到服务器。当发送成功时,则切换到 receive 状态,否则重新进入 initial 状态。

Labview 实例——像 QQ 一样的聊天室程序

Labview 实例——像 QQ 一样的聊天室程序

  • 在 receive 状态中,客户端会按照通信协议接收来自服务器端的数据,倘若是用户发送的聊天内容,则显示到聊天窗口中;若是“ONLINE”+用户昵称 的在线状态指令则不显示到聊天窗口,而是通过一个子 VI 的处理不重复地把用户昵称显示到 Online List 中,并且 Online List 每隔 200 个状态机循环就会被清空,如此就可以保证显示在 Online List 中的用户都是实时在线的;

Labview 实例——像 QQ 一样的聊天室程序

 

以上便是Labview在线聊天室的设计过程。如有疑问欢迎留言讨论。


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Labview 实例——像 QQ 一样的聊天室程序
喜欢 (15)
TOMORROW
关于作者:
一个从石头坑掉到泥坑里的攻城狮。
飘逸的枕头发表我的评论  请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到
(21)个小伙伴在吐槽
  1. Thanks!学习了
    曾经的翅膀2019-10-25 10:43 回复 Windows 10 | Chrome 78.0.3904.70
  2. 顶替顶替fffffffffffffffffff
    发嗲的白云2019-09-29 08:38 回复 Windows 10 | Chrome 70.0.3538.102
  3. 哇塞,居然是沙发?留个名
    辛勤的小天鹅2019-06-25 09:13 回复 Windows 10 | Chrome 70.0.3538.25
  4. 学习一下
    欢乐2019-06-11 11:12 回复 Windows 10 | Chrome 63.0.3239.132
  5. 哇塞,居然是沙发?留个名
    675电影网2019-05-05 21:34 回复 Windows 7 | 未知浏览器
  6. 哇塞,居然是沙发?留个名
    daadxc2019-05-05 19:51 回复 Windows 7 | 未知浏览器
  7. 连接不上啊
    小戏2019-04-27 15:35 回复 Windows 7 | Chrome 71.0.3578.98
    • TOMORROW
      应该是你的网络配置问题,需要在同一个局域网下才可以用
      TOMORROW2019-04-27 16:14 回复 Linux | Chrome 66.0.3359.126
  8. 请问一下,server子VI里的各种ID是怎么弄出来的,listener id,connect id还有valid id
    俭朴的山水2018-12-12 11:08 回复 Windows 10 | Chrome 58.0.3029.110
    • TOMORROW
      右键某个控件,创建引用或者局部变量,具体根据实际情况用
      TOMORROW2018-12-29 15:54 回复 Windows 10 | 搜狗浏览器 2.X
  9. 好东西啊,谢谢分享!
    大气的树叶2018-10-01 22:01 回复 Windows 7 | Internet Explorer 9.0
  10. 不错~~~
    年轻的嚓茶2018-09-27 15:49 回复 Windows 7 | Chrome 63.0.3239.132
  11. 666666666666666666666666
    火星上的短靴2018-08-08 17:02 回复 Windows 7 | Chrome 67.0.3396.99
  12. 好像学习
    忧郁的心情2018-08-06 12:40 回复 Windows 10 | Chrome 55.0.2883.87
  13. TOMORROW星辰第一作者。如有疑问或者发现错误,请留言作者
    傲娇的哑铃2018-07-21 23:20 回复 Windows 10 | Chrome 64.0.3282.140
  14. Thanks
    细腻的草丛2018-07-10 13:50 回复 Windows 7 | Chrome 67.0.3396.87
  15. 谢啦
    李白2018-07-07 01:15 回复 Windows 10 | Chrome 55.0.2883.87
    • TOMORROW
      不客气
      TOMORROW2018-07-07 01:16 回复 Windows 10 | 搜狗浏览器 2.X
  16. 好东西啊 :wink:
    害羞的时光2018-07-02 18:28 回复 Windows 10 | Chrome 55.0.2883.87
  17. 看看 :roll:
    帅气的帽子2018-06-17 13:16 回复 Windows 10 | 搜狗浏览器 2.X
  18. Reply testing
    TT2018-06-16 02:34 回复 Windows 10 | 搜狗浏览器 2.X