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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
Python处理JSON数据并生成条形图
Aug 05 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
python实现简单井字棋游戏
Mar 04 Python
基于FME使用Python过程图解
May 13 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
Python如何用re模块实现简易tokenizer
May 02 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滚动日志的代码实现
2015/06/10 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
浅析Node.js查找字符串功能
2014/09/03 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python中列表(list)操作方法汇总
2014/08/18 Python
python批量提交沙箱问题实例
2014/10/08 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
python实时监控logstash日志代码
2020/04/27 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
公司车辆管理制度
2015/08/04 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js