前言
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
电脑手机通讯工具都用过,比如QQ,微信等,你可能很好奇,一个手机它是如何准确无误的把消息发送给另外一个手机的,当然你会说是通过网络;如果你不断追问自己为什么,我相信你一定会陷入困惑,因为困惑你可能会放弃,也可能好奇会想要去知道答案到底是什么。
今天我不会讲它的原理,而是带你实现一个具备对话功能的两个程序。(感兴趣可以自己去看网上的互联网协议讲解)
互联网之所以可以进行通信(发送数据和接收数据),是因为它根据网络协议已经实现了对应的接口,可以让我们通过接口来发送数据和接收数据。
在python中要相互通信,可以使用socket这个模块来实现,socket是对TCP/IP协议的封装,socket本身并不是协议,而是一个调用接口(API),通过socket,我们才能使用TCP/IP协议来发送数据和接收数据。
既然是要相互通信,肯定至少需要两个程序,其中也给我们可以称为服务端,它会等待其它程序去连接它。
上面的HOST可以通过命令行查看,如果是在一台电脑上运行两个程序,只要写127.0.0.1就可以了。
这里需要先运行服务端,然后在运行客户端,连接成功后相互发送一条消息就关闭了。
上面的程序已经可以实现接收和发送消息了,但是都是提前按顺序设定好的,不能想发送就发送。要实现既可以随时发送消息,又可以接收消息,就得使用上篇文章讲到的线程方法了,正常程序是会阻碍作用的,上面的还没运行完,你是运行不到下面的,而这里要可以随时接收和发送,那肯定得同时运行。
服务端程序
客户端程序
结果:
通过线程的方式我们就可以实现发送和接收消息的功能了,但是在终端发送还不是很方便,文字部分格式有些位置不好,之前已经学过图形界面设计,之后通过结合两者,就可以实现一个带有界面的聊天工具了。
一次通信
多次通信
(全文完)
欢迎转载,转载请注明出处! 欢迎关注公众微信号:叶子陪你玩编程 分享自己的python学习之路