Skip to content

Get-New/IM_programming

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IM_programming


计算机网络课设_即时通讯软件

  • Created on: 2015年6月25日
  •  Author: yongliangzh,gzxultra
    
  • Finished on: 2015年x月xx日

用户登录服务器获得好友列表

登陆演示图 用户在登录界面提交用户名和密码后,客户机发送”0##用户名##密码”到服务器,服务器随即判断用户名和密码是否正确,如果正确的话发送登录成功信号”Y”给用户,再读取用户存放在服务器的好友列表,发送”F##好友1##好友2……”给用户,如果错误的话发送登录失败信号”N”给用户。然后判断该用户在不在线,如果该用户已经在线的话,服务器发出”CLOSE”信号勒令在线的用户退出。

上线提醒演示图 用户点击登录按钮后,该用户的客户机将收到服务器发送来的”Y”、”N”和”CLOSE”信号,对应的操作分别是显示“登录成功”、显示“登录失败”、终止接收信号的线程客户机程序退出。而其他用户的客户机将收到服务器发送来的” 0##用户名”,随即显示该用户上线。

登陆

用户退出服务器

用户在点击聊天窗口的关闭按钮后,客户机发送”1##用户名”到服务器代表该用户已经退出,服务器将发送用户退出信号” 1##用户名”给该用户的所有在线好友。 客户机在收到服务器发送过来的”1##用户名”后随即显示该户下线。

退出

基础聊天

聊天演示图

用户输入聊天内容向目标用户发送消息时,客户机将发送”2##用户名##目标用户##信息”到服务器,服务器收到信息后,在已在线的用户列表中查询到目标用户的IP地址和端口号,直接向目标用户转发该帧。 目标用户在收到该帧时,即可得到发送方的用户名和发送的内容,然后显示消息。

基础聊天

文件传输

我们通过FTP服务器实现传文件的功能。当一个用户向另一个用户传文件时,发送方将文件上传到接收方的FTP服务器对应的文件夹中,然后发送传文件信号”3##用户名##目标用户##文件名”给服务器。服务器收到信息后,在已在线的用户列表中查询到目标用户的IP地址和端口号,直接向目标用户转发该帧。 文件的接收方在收到该帧后,通过文件名在自己对应FTP服务器的文件夹中找到该文件,然后便可以下载文件到本地文件夹中。

文件传输

好友系统

当A申请加B为好友时,客户机A发送好友申请信号”4##用户名##待加好友名##验证消息”到服务器。服务器收到信息后,在已在线的用户列表中查询到目标用户的IP地址和端口号,直接向目标用户转发该帧。 客户机B收到服务器发来的该帧后,做出决定(Y/N),然后向服务器发出B的确认信息” 5##用户名##待加好友名##是否成功”。服务器收到该帧后,随即向A转发。如果B同意了A的好友请求,服务器就将B和A的用户名分别写入A和B服务器本地的好友列表中。 客户机A收到来自服务器的客户机B的确认信息后,根据帧尾的是否成功信号显示添加好友成功或者是添加好友失败。

好友系统

离线消息、离线文件、离线好友申请

历史记录演示图

服务器本地使用文本文件维护着所有用户的离线信息,当服务器向用户转发消息时检查到用户不在线,就将离线消息暂时存放在用户在服务器的本地文件中。当用户上线时,服务器则会检查该用户在服务器的本地文件中有没有离线信息。如果有的话就立即取出,向该用户发送,然后清空该文件。 该用户收到自己的离线信息后,同一般信息一样的操作即可。

截图

首先我们使用程序进行整个的印屏幕操作,然后通过获得鼠标在屏幕上的坐标点选择需要截图的区域,最后在全屏图片上裁剪下截取出来的图片。后面的操作和传文件一样,客户机上传图片到FTP服务器,对方从FTP服务器上下载。

截图

服务器直接发送消息到客户机

这个和聊天功能类似,即在服务器向客户机发送的” 2##用户名##目标用户##信息”中的用户名是”服务器”便可。

服务器消息

热点新闻

新闻栏目

这个功能采用第三方的feedparser模块,他采用http请求的方式以rss的形式将中新网的html下载下来并保存在元组中,然后我分别将title,description和link等关键字解包出来,显示在窗体上。

About

计算机网络课设_即时通讯软件

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%