用 Python 写个聊天工具

本次用到的python模块还是socket嘛,加强对socket的理解提高编程和思维能力(虚假),其实就是:上课聊天用的(机房得有python环境, 注意关闭防火墙ping得通就可以了),没有socket基础的可以去看一下这个

上来就是两张图片(示意图注意了解一下)

图1.10

  1. 服务器开启监听

  2. 客户端连接服务器

  3. 连接成功后将客户端套接字对象放到变量clients中保存

图1.20

  1. 成功连接服务器(我也不知道自己为什么要把这个写上 不许问!)

  2. 客户端发送信息

  3. 服务端接收到信息后遍历(每一个)客户端套接字对象(用来发送数据的)

  4. 将这个信息转发出去

大概就是这么一回事,但是但是!!!但是!你会发现 recv() [接收数据用的]函数是阻塞的,也就是说没有设置超时时间会一直等等等,等到有数据发送过来程序才继续运行,那么也就是说。像上一个文章反弹shell中(图1.30)那么和 send() [发送数据的]函数写在一起就运行不起来了,就会变成这样:我发条信息给你,一直等一直,等不能再次发送信息要等你回复我才可以继续发。哦!忘记说了 accept()也是阻塞的哟

图1.30

那么要怎么解决捏,最简单的方法就是把这两个函数分开,监听回复信息的我们开个线程让他在后台监听,我们发我们的信息。废话不多说直接上代码,算了还是来张图帮助理解先吧。

图1.40

对了还有服务器的..

图1.50

差不多就是这个意思了,上代码吧

服务器代码

客户端代码

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树基本技能 络编程211178 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月15日
下一篇 2020年4月15日

相关推荐