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选择排序算法的实现代码
Nov 21 Python
Python3实现从文件中读取指定行的方法
May 22 Python
python 迭代器和iter()函数详解及实例
Mar 21 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
python实现五子棋程序
Apr 24 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python - timeit 时间模块
Apr 06 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 UTF8 文件的签名问题
2009/10/30 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
平民服装店创业计划书
2014/01/17 职场文书
奠基仪式主持词
2014/03/20 职场文书
工作保证书范文
2014/04/29 职场文书
检讨书范文
2015/01/27 职场文书
关于长城的导游词
2015/01/30 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书