Python3 socket即时通讯脚本实现代码实例(threading多线程)


Posted in Python onJune 01, 2020

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()

先执行 服务端代码,再执行客户端代码,可以实现基本通讯功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
Tesserocr库的正确安装方式
Oct 19 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
python 下载文件的几种方式分享
Apr 07 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Python实现照片卡通化
Dec 06 Python
Python如何在main中调用函数内的函数方式
Jun 01 #Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 #Python
基于Python绘制个人足迹地图
Jun 01 #Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 #Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 #Python
Python如何在循环内使用list.remove()
Jun 01 #Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 #Python
You might like
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
DELPHI中如何调用API,可举例说明
2014/01/16 面试题
ktv收银员岗位职责
2013/12/16 职场文书
白酒市场营销方案
2014/02/25 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
二审代理词范文
2015/05/25 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP