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 urlopen()函数 示例分享
Jun 12 Python
web.py在模板中输出美元符号的方法
Aug 26 Python
Python打印斐波拉契数列实例
Jul 07 Python
python中星号变量的几种特殊用法
Sep 07 Python
python中正则的使用指南
Dec 04 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
详解Django的CSRF认证实现
Oct 09 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
python中pyqtgraph知识点总结
Jan 26 Python
详解python字符串驻留技术
May 21 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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下使用SMTP发邮件的代码
2008/01/10 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
python使用socket远程连接错误处理方法
2015/04/29 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python 字符串与数字输出方法
2018/07/16 Python
python 批量修改/替换数据的实例
2018/07/25 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
美德好少年事迹材料
2014/01/19 职场文书
给老婆的保证书范文
2014/04/28 职场文书
廉洁校园实施方案
2014/05/25 职场文书
撤诉状格式范本
2015/05/19 职场文书
教师节班会开场白
2015/06/01 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
餐厅开业活动方案
2019/07/08 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android