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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
Python使用pymysql小技巧
Jun 04 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
numpy linalg模块的具体使用方法
May 26 Python
django迁移数据库错误问题解决
Jul 29 Python
python global关键字的用法详解
Sep 05 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
pyspark 随机森林的实现
Apr 24 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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
杏林同学录(三)
2006/10/09 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
PHP实现计算器小功能
2020/08/28 PHP
使用Apache的rewrite
2021/03/09 Servers
jquery、js操作checkbox全选反选
2014/03/12 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
详解vue axios中文文档
2017/09/12 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
python之wxPython菜单使用详解
2014/09/28 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
Python多层装饰器用法实例分析
2018/02/09 Python
python版本单链表实现代码
2018/09/28 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
python实现大学人员管理系统
2019/10/25 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
python对XML文件的操作实现代码
2020/03/27 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
社区志愿者心得体会
2014/01/03 职场文书
查环查孕证明
2014/01/10 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
行政处罚告知书
2015/07/01 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
Python实现简单的猜单词
2021/06/15 Python
nginx中proxy_pass各种用法详解
2021/11/07 Servers