Python3 socket即时通讯脚本实现代码实例(threading多线程)
作者:Angelo_start 发布时间:2022-05-20 08:52:17
标签:Python,socket,脚本,threading
Python 提供了两个级别访问的网络服务。:
低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。
------------------------------------------------服务端代码--------------------------------------
__author__ = "托尼老师"
"""
即时通讯原理
@@@ 服务端代码
"""
from socket import *
import threading
ip = '0.0.0.0'
port =8888
# 定义 socket 参数
Server = socket(AF_INET,SOCK_STREAM)
Server.bind((ip,port))
Server.listen()
print("[*] SocketServer 正在监听...")
# 接受函数
def recvs():
while 1:
print(' [*] 客户端说: %s '% client.recv(1024).decode('utf-8'))
#发送函数
def sends():
while 1:
say = bytes(input(' [*] 我说: ') , encoding='utf-8')
client.send(say)
# 堵塞接受请求
client,client_ip = Server.accept()
print(client_ip[0] +':'+str(client_ip[1])+' 连接成功!' )
# 创建接受线程
receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 创建发送线程
send = threading.Thread(target =sends ,args=() )
send.start()
------------------------------------------------客户端代码--------------------------------------
__author__ = "托尼老师"
"""
即时通讯原理
@@@ 客户端代码
"""
from socket import *
import threading
ip,port ='127.0.0.1',8888
Client = socket(AF_INET,SOCK_STREAM)
Client.connect((ip,port))
def sends() -> '发送函数':
while 1:
say = bytes(input("[*]我说: "),encoding='utf-8')
Client.send(say)
def recvs() -> '接受函数':
while 1:
print('[*] 服务端说: %s ' % Client.recv(1024).decode('utf-8'))
receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 创建发送线程
send = threading.Thread(target =sends ,args=() )
send.start()
先执行 服务端代码,再执行客户端代码,可以实现基本通讯功能
来源:https://blog.51cto.com/13876557/2499449


猜你喜欢
- 在进入一个页面的时候,一般在获取数据的同时,会先显示一个 loading ,等请求结束再隐藏 loading 渲染页面,只需要用一个属性去记
- 数据列类型与查询效率选用适当的数据列类型有助于提高查询命令的执行速度,下面是几点关于如何选择合适数据列类型的建议:尽量选用尺寸较小的数据列。
- 上次还是CSDN里的朋友回答的,我复制了下来。原文如下 =========================== 利用统计文章字数,然后达到一
- 假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程。实现方式:第一种是利用Mysql本身实现,制定event定时任务,可以借助N
- 阅读上一篇:打造设计你自己的字体 Ⅱ永远都在寻觅字体设计的灵感。夏天过后,我买了一套便宜的书法钢笔,说服自己,它会让我的鸡爬字产生脱胎换骨的
- 网上大部分教程都写的直接关闭界面,我摸索出来一个方法:同时绑定两个事件例:#自己方法self.registerButton.clicked.
- 本文实例讲述了python开发中range()函数用法。分享给大家供大家参考,具体如下:python中的range()函数的功能很强大,所以
- 问题怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素解决方案下面的类利用 heapq 模块
- ValueError: The number of FixedLocator locations (9), usually from a c
- 1、 try-catch语句ECMA-262第3版引入了try-catch语句,作为JavaScript中处理异常的一种标准方式。语法:tr
- 持续更新一些常用的Tensor操作,比如List,Numpy,Tensor之间的转换,Tensor的拼接,维度的变换等操作。其它Tensor
- 大家好,我们的git专题已经更新结束了,所以开始继续给大家写一点设计模式的内容。今天给大家介绍的设计模式非常简单,叫做iterator,也就
- js 数组对象操作方法如下:1. 创建数组var array1 = [1,2] //方法一var array2 = new Ar
- 自动化处理PDF文件使用Python完成简单的PDF文件处理操作,如PDF文件的批量合并、拆分、加密以及添加水印等。1. 批量合并PDF文件
- 自定义分页样式,不多废话,直接上代码~ html部分<div id="my_id"> &nbs
- 上一章节我们学习了 excel 的读取模块 - xlrd ,今天章节将学习 excel 的写入模块 - xlsxwriter 。通过该章节的
- 1、本地备份编写自动备份脚本:vim /var/lib/mysql/autobak内容如下:cd /data/home/mysqlbakrq
- 本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:一、zipimport os, zipfile#打包目录为zip
- 本文实例讲述了Node.js文本提交与显示方法。分享给大家供大家参考,具体如下:index.jsvar server = require(&
- 用python另一个抢票神器,你get到了吗?2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作