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计算方程式根的方法
May 07 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python常用运维脚本实例小结
Feb 14 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
python代码实现猜拳小游戏
Nov 30 Python
Python基础之常用库常用方法整理
Apr 30 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正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
JavaScript运动减速效果实例分析
2015/08/04 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
Python开发编码规范
2006/09/08 Python
Python的一些用法分享
2012/10/07 Python
python类型强制转换long to int的代码
2013/02/10 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python xlwt模块使用代码实例
2020/06/10 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
金士达面试非笔试
2012/03/14 面试题
会计主管岗位职责范文
2013/11/08 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
导游词之安徽九华山
2019/09/18 职场文书