前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何利用socket进行通信?

如何利用socket进行通信?

作者头像
叶子陪你玩
发布2020-04-09 17:14:17
7250
发布2020-04-09 17:14:17
举报

前言

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

前言

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

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

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

什么是socket

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

服务端实现

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

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

客户端实现

运行结果

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

实时发送和接收

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

服务端程序

客户端程序

结果:

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

代码图片

一次通信

多次通信

(全文完)


欢迎转载,转载请注明出处! 欢迎关注公众微信号:叶子陪你玩编程 分享自己的python学习之路

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是socket
  • 服务端实现
  • 客户端实现
  • 运行结果
  • 实时发送和接收
  • 代码图片
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档