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 相关文章推荐
9种python web 程序的部署方式小结
Jun 30 Python
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
极简的Python入门指引
Apr 01 Python
python实现折半查找和归并排序算法
Apr 14 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python3 log10()函数简单用法
Feb 19 Python
Python多项式回归的实现方法
Mar 11 Python
windows下python安装pip方法详解
Feb 10 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
Django路由层如何获取正确的url
Jul 15 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
vscode调试django项目的方法
2020/08/06 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
环保主题班会教案
2015/08/13 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android