引用:./ipmsg
(ipmsg)list
---------|----------------|---------------|---------------|---------------|-----
序号 |用户名 |工作组 |主机名 |优先级 |IP
---------|----------------|---------------|---------------|---------------|-----
---------|----------------|---------------|---------------|---------------|-----
在线用户数:
(ipmsg)refresh (刷新,重新获取在线的用户)
----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------
在线用户数:
(ipmsg)writeto (序号or all,all参数用来向所有在线用户发送消息)
>
>
>(ctrl+Enter发送)
(ipmsg)
消息来源
消息内容
得到消息并显示消息(如果正在写消息,则提示有信息到,而不把消息显示出来)
(ipmsg)read (序号)
显示消息内容
(ipmsg)sendfile -r 路径名 序号(目的地) (发送文件夹)
============== %x(显示发送进度,ctrl+c停止发送)
(ipmsg)sendfile 文件名 序号(目的地)
============== %x(显示发送进度,ctrl+c停止发送)
(ipmsg)getfiles (接收文件/文件夹)
============== %x(显示接收进度,ctrl+c停止发送)
(ipmsg)exit (退出ipmsg)
(ipmsg)help (帮助信息)
(ipmsg)clear (清屏)
显示消息与其他进程互斥,在命令行显示有人发送消息和文件,只要没有进行其他操作,则及时显示消息。
需要三个进程,其中主进程用来发送广播消息和接收返回消息,当有一个广播到达时该进程即把发送广播的用户添加到在线用户列表;进程1完成对命令的解析;进程2用来监控网络中是否有用户发送消息或文件。进程1与进程2需要频繁的通信
在线用户列表数据结构设计:设计为双向链表,当有一个用户上线时即将该用户添加到链表尾,当有一个用户下线时,在链表中即删除该用户,并修改所有受影响的用户的序号。