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操作CouchDB的方法
Oct 08 Python
跟老齐学Python之编写类之四再论继承
Oct 11 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
Python探索之自定义实现线程池
Oct 27 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 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转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
JavaScript基本对象
2007/01/11 Javascript
学习ExtJS table布局
2009/10/08 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python运算符重载用法实例
2015/05/28 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python requests模块cookie实例解析
2020/04/14 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
法学专业应届生求职信
2013/10/16 职场文书
大学生大二自我鉴定
2013/10/28 职场文书
平面设计岗位职责
2013/12/14 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
有关环保的标语
2014/06/13 职场文书
公司门卫岗位职责
2015/04/13 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书