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读写Excel文件的实例
Nov 01 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python Matplotlib库入门指南
May 18 Python
python使用urllib2提交http post请求的方法
May 26 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
答题辅助python代码实现
Jan 16 Python
python 信息同时输出到控制台与文件的实例讲解
May 11 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Django框架视图介绍与使用详解
Jul 18 Python
Python3基本输入与输出操作实例分析
Feb 14 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中的HashTable结构详解
2013/06/13 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
python遍历路径破解表单的示例
2020/11/21 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
高中生学习总结的自我评价范文
2013/10/13 职场文书
高中政治教学反思
2014/01/18 职场文书
委托证明书
2014/09/17 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
上课迟到检讨书
2015/05/06 职场文书
投资合作意向书范本
2015/05/08 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
详解Laravel制作API接口
2021/05/31 PHP
OpenCV实现普通阈值
2021/11/17 Java/Android
pandas进行数据输入和输出的方法详解
2022/03/23 Python