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 01 Python
Python实现简单的代理服务器
Jul 25 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
Python对象属性自动更新操作示例
Jun 15 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
Python多项式回归的实现方法
Mar 11 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
Python configparser模块配置文件过程解析
Mar 03 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
如何用python爬取微博热搜数据并保存
Feb 20 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中socket的用法详解
2014/10/24 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
tensorflow自定义激活函数实例
2020/02/04 Python
Flask处理Web表单的实现方法
2021/01/31 Python
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
初任培训自我鉴定
2013/10/07 职场文书
18岁生日感言
2014/01/12 职场文书
《老王》教学反思
2014/02/23 职场文书
小学校本培训方案
2014/06/06 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
交通事故协议书范文
2014/10/23 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
css样式important规则的正确使用方式
2022/06/10 HTML / CSS