基于IPv6和UDP的简单聊天程序

基于IPv6和UDP的简单聊天程序

功能

  实现两台主机之间的文本聊天通信,通信在IPv6环境下进行,完成了登录和注册功能、点对点聊天、群聊等功能。

实现过程

基于UDP协议的Socket通信

  UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
  通信协议层面主要用到的方法为:

socket([family[, type[, proto]]])  
bind(address: Union[_Address, bytes])  
sendto(data, address,)
recvfrom(bufsize, flags,)

SQLite3数据库实现

  在程序设计的过程中需要用到数据库来存储用户的用户名、密码、状态,用户IP地址和端口。在数据库选择的时候,用到的是SQLite3轻量级数据库,方便数据库的迁移等。

函数名功能
init(self)用来创建和打开数据库
select_all(self)用来获取数据库相应表中的所用用户信息
register(self, username, password, ip, port)注册时调用,用于添加用户信息
search_username(self, username)根据用户名查找用户信息
login_success(self, username, ip, port)登录成功后,更改数据库中的用户状态信息
login_check(self, username, password, ip, port)登录时用于检查用户名和密码是否正确
logout_success(self, username)在用户注销登陆时,更改用户的状态
db_close(self)关闭数据库

运行测试

  在两台可以通信的主机上分别进入代码所在目录,分别执行python3 Client.pypython3 Server.py。客户端可以根据需求实现多开,服务器只能开一个。在开启服务器的同时会打开数据库。
  根据提示,进行选择,可以实现不同的功能。在点对点聊天中,任意一方发送END,即可关闭聊天,另一方根据提示确认即可。群聊的实现原理类似,运行测试过程也类似。

相关的代码已经上传到Github,希望大家star关注,万分感谢。
如有错误,希望大家批评指正。
部分资源来源网络,如有侵权请联系删除。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值