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构建Hopfield网络的教程
Apr 14 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
使用Python来开发微信功能
Jun 13 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
Python文件时间操作步骤代码详解
Apr 13 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
javascript JSON操作入门实例
2010/04/16 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
全面了解python字符串和字典
2016/07/07 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
Jar包的作用是什么
2014/03/30 面试题
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
中医专业职业生涯规划书范文
2014/01/04 职场文书
优秀医生事迹材料
2014/02/12 职场文书
安全施工责任书
2014/08/25 职场文书
社区服务活动报告
2015/02/05 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
领导视察通讯稿
2015/07/18 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
spring cloud 配置中心native配置方式
2021/09/25 Java/Android