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程序的执行原理
Apr 11 Python
python如何让类支持比较运算
Mar 20 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
python实现登录与注册系统
Nov 30 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Python上下文管理器Content Manager
Jun 26 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python中GIL的使用详解
2018/10/03 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
简单了解python中对象的取反运算符
2019/07/01 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
教育学专业毕业生的自我评价
2013/11/21 职场文书
社团文化节策划书
2014/02/01 职场文书
阿德的梦教学反思
2014/02/06 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
写景作文评语集锦
2014/12/25 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server