您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

5b51 2022/1/14 8:25:01 python 字数 4046 阅读 841 来源 www.jb51.cc/python

用到的库 socket库 进群:125240963?即可获取数十套PDF哦! 先看代码! TCP服务端

概述

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

socket库

进群:125240963   即可获取数十套PDF哦!

先看代码

TCP服务端

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

TCP客户端

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

‘电话’接通后对方就会开始‘说话'(发送了消息),接收消息了recv是接收信息,1024这里需要解释一下,是接收的最大字节(接收到的内容为二进制)。但是细心的读者可能发现了,用send发送的时候并没有设置发送的字节,其实可以更大,最大不要超过8K就可以了。下面解释这个怎么用才能更好。

接收消息了还需要发送信息。发送信息只需要用send就可以发了,但是需要发送二进制的内容

另外一点要说的是while True的作用,假如有人给我们打电话,那么朋友不会只说一句'你好!',然后你说‘你好’就挂电话吧,所以需要循环接收和发送。

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

3

网络通讯底层逻辑

这里我想我可以详细讲解一下底层逻辑,因为这可以帮助我们在出现问题的时候可以更快的找到处理方法

通讯协议可以分为两种:

①TCP协议

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

类似这样。每个send是进行两个操作,将东西放在自己的内存里,然后传输过去。而接收只在自己的内存里面拿东西,而发送端发送的内容如果很大会怎么办呢,接收端限制了大小,会出现‘粘包’的现象,就是说自己的内存里面还有多余的东西没有拿完。如果这个时候接收端继续接收信息的话,会从内存中取出上次没有取完的,打个比方,我两个桶中间有个很大的盆(内存)做过度,我这边发送端把水(信息)先用管子(TCP)导入到你的盆里面,但是你接受的时候只倒了一半的水走,还有一半就留在了盆里,下次再有水导过来的时候,会首先将之前的水倒到桶里,然后再看有没有接收新的水的内存来接收新的内存。

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

发送端

利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?

这是一种简单的处理方式,就是先告诉接收端要接收多少东西,然后再传入

②UDP协议

UDP (User Datagram Protocol),是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

这个相对TCP来说相对简单些,无需用户先连接再发送信息,而是用sendto('二进制信息‘,(ip,port))来传输信息,UDP是可以直接多用户同时进行交流。个人觉得这个协议没有TCP快捷。下次再进行介绍吧!有兴趣的小伙伴可以自己看看!

总结

以上是编程之家为你收集整理的利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?全部内容,希望文章能够帮你解决利用Python来写一个聊天工具!可能下个QQ或者微信会是你开发的?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶