前言

本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。

前言

如何利用socket进行通信?_图形用户界面

电脑手机通讯工具都用过,比如QQ,微信等,你可能很好奇,一个手机它是如何准确无误的把消息发送给另外一个手机的,当然你会说是通过网络;如果你不断追问自己为什么,我相信你一定会陷入困惑,因为困惑你可能会放弃,也可能好奇会想要去知道答案到底是什么。

今天我不会讲它的原理,而是带你实现一个具备对话功能的两个程序。(感兴趣可以自己去看网上的互联网协议讲解)

互联网之所以可以进行通信(发送数据和接收数据),是因为它根据网络协议已经实现了对应的接口,可以让我们通过接口来发送数据和接收数据。

什么是socket

在python中要相互通信,可以使用socket这个模块来实现,socket是对TCP/IP协议的封装,socket本身并不是协议,而是一个调用接口(API),通过socket,我们才能使用TCP/IP协议来发送数据和接收数据。

服务端实现

既然是要相互通信,肯定至少需要两个程序,其中也给我们可以称为服务端,它会等待其它程序去连接它。

如何利用socket进行通信?_python_02

上面的HOST可以通过命令行查看,如果是在一台电脑上运行两个程序,只要写127.0.0.1就可以了。

如何利用socket进行通信?_python_03

客户端实现

如何利用socket进行通信?_服务端_04

运行结果

这里需要先运行服务端,然后在运行客户端,连接成功后相互发送一条消息就关闭了。

如何利用socket进行通信?_图形用户界面_05

实时发送和接收

上面的程序已经可以实现接收和发送消息了,但是都是提前按顺序设定好的,不能想发送就发送。要实现既可以随时发送消息,又可以接收消息,就得使用上篇文章讲到的线程方法了,正常程序是会阻碍作用的,上面的还没运行完,你是运行不到下面的,而这里要可以随时接收和发送,那肯定得同时运行。

服务端程序

如何利用socket进行通信?_图形用户界面_06

客户端程序

如何利用socket进行通信?_图形用户界面_07

结果:

如何利用socket进行通信?_服务端_08

如何利用socket进行通信?_python_09

如何利用socket进行通信?_图形用户界面_10

通过线程的方式我们就可以实现发送和接收消息的功能了,但是在终端发送还不是很方便,文字部分格式有些位置不好,之前已经学过图形界面设计,之后通过结合两者,就可以实现一个带有界面的聊天工具了。

如何利用socket进行通信?_图形用户界面_11

代码图片

一次通信

如何利用socket进行通信?_服务端_12

如何利用socket进行通信?_图形用户界面_13

多次通信

如何利用socket进行通信?_服务端_14

如何利用socket进行通信?_图形用户界面_15

(全文完)



欢迎转载,转载请注明出处!

欢迎关注公众微信号:叶子陪你玩编程 分享自己的python学习之路






长按二维码,

加关注!

叶子陪你玩

如何利用socket进行通信?_服务端_16