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编程中线程的创建与锁的使用
Feb 28 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
对python append 与浅拷贝的实例讲解
May 04 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
python list转置和前后反转的例子
Aug 26 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
python网络编程之五子棋游戏
May 14 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php header功能的使用
2013/10/28 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
JQuery验证工具类搜集整理
2013/01/16 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
css3选择器基本介绍
2014/12/15 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
医学生实习自荐信
2013/10/01 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
秋季运动会活动方案
2014/02/05 职场文书
小班上学期个人总结
2015/02/12 职场文书
经理聘任证明
2015/03/02 职场文书
创先争优活动个人总结
2015/03/04 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
2015年教务工作总结
2015/05/23 职场文书
学前教育见习总结
2015/06/23 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js