Python基于socket实现简单的即时通讯功能示例


Posted in Python onJanuary 16, 2018

本文实例讲述了Python基于socket实现简单的即时通讯功能。分享给大家供大家参考,具体如下:

客户端tcpclient.py

# -*- coding: utf-8 -*-
import socket
import threading
# 目标地址IP/URL及端口
target_host = "127.0.0.1"
target_port = 9999
# 创建一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接主机
client.connect((target_host,target_port))
def handle_send():
  while True:
    content = raw_input()
    client.send(content)
def handle_receive():
  while True:
    response = client.recv(4096)
    print response
send_handler = threading.Thread(target=handle_send,args=())
send_handler.start()
receive_handler = threading.Thread(target=handle_receive,args=())
receive_handler.start()

服务器端tcpserver.py

# -*- coding: utf-8 -*-
import socket
import threading
# 监听的IP及端口
bind_ip = "127.0.0.1"
bind_port = 9999
#socket 服务器初始化
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind((bind_ip,bind_port))
server.listen(5)
print "[*] Listening on %s:%d" % (bind_ip,bind_port)
# 定义函数handle_client,输入参数client_socket
def handle_client():
  while True:
    request = client_socket.recv(1024)
    print "[*] Received:%s" % request
def handle_send():
  while True:
    content = raw_input()
    client_socket.send(content);
#阻塞在这里,等待接收客户端的数据
client_socket,addr = server.accept()
print "[*] Accept connection from:%s:%d" % (addr[0],addr[1])
#创建一个线程
client_handler = threading.Thread(target=handle_client,args=())
client_handler.start()
send_handler = threading.Thread(target=handle_send,args=())
send_handler.start()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python操作xml文件详细介绍
Jun 09 Python
Python import自定义模块方法
Feb 12 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
django的登录注册系统的示例代码
May 14 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Python中实现输入一个整数的案例
May 03 Python
Python虚拟环境venv用法详解
May 25 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
Python 如何测试文件是否存在
Jul 31 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 Python
python中将字典形式的数据循环插入Excel
Jan 16 #Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 #Python
详解python函数传参是传值还是传引用
Jan 16 #Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 #Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 #Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 #Python
Python+matplotlib实现填充螺旋实例
Jan 15 #Python
You might like
PHP 工厂模式使用方法
2010/05/18 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
跟老齐学Python之开始真正编程
2014/09/12 Python
python持久性管理pickle模块详细介绍
2015/02/18 Python
python实现数据写入excel表格
2018/03/25 Python
python实现自主查询实时天气
2018/06/22 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python实现泊松图像融合
2018/07/26 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
Ajax的优点和缺点
2014/11/21 面试题
《维生素c的故事》教学反思
2014/02/18 职场文书
人事经理岗位职责
2014/04/28 职场文书
演讲比赛策划方案
2014/06/11 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
户籍证明格式
2014/09/15 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS