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使用urllib2提交http post请求的方法
May 26 Python
Python打印“菱形”星号代码方法
Feb 05 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
tensorflow实现简单的卷积神经网络
May 24 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
pygame实现打字游戏
Feb 19 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
Django实现图片上传功能步骤解析
Apr 22 Python
深入分析python 排序
Aug 24 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 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的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
浅谈javascript的调试
2015/01/28 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
Python日期的加减等操作的示例
2017/08/15 Python
python requests 使用快速入门
2017/08/31 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python读写文件基础知识点
2019/06/10 Python
python ChainMap的使用和说明详解
2019/06/11 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python适合做数据挖掘吗
2020/06/16 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书