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 yield 小结和实例
Apr 25 Python
Python实现基本线性数据结构
Aug 22 Python
OpenCV实现人脸识别
Apr 07 Python
Django admin美化插件suit使用示例
Dec 12 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
python小程序实现刷票功能详解
Jul 17 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
django rest framework 过滤时间操作
Jul 12 Python
Django程序的优化技巧
Apr 29 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
PHP 强制下载文件代码
2010/10/24 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
python3图片转换二进制存入mysql
2013/12/06 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
python 变量初始化空列表的例子
2019/11/28 Python
python几种常用功能实现代码实例
2019/12/25 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
生产经理的自我评价分享
2013/11/07 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
销售经理岗位职责
2014/03/16 职场文书
人代会标语
2014/06/30 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS