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模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
Python实现发送QQ邮件的封装
Jul 14 Python
python的unittest测试类代码实例
Dec 07 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
对Python函数设计规范详解
Jul 19 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
python超时重新请求解决方案
Oct 21 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
C站最全Python标准库总结,你想要的都在这里
Jul 03 Python
Python find()、rfind()方法及作用
Dec 24 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使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jquery创建div 实现代码
2009/04/27 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python 字典的打印实现
2019/09/26 Python
python 读取数据库并绘图的实例
2019/12/03 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
python使用建议与技巧分享(二)
2020/08/17 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
国税会议欢迎词
2014/01/16 职场文书
初中英语演讲稿
2014/04/29 职场文书
学习十八大演讲稿
2014/09/15 职场文书
故宫导游词
2015/01/31 职场文书
催款函怎么写
2015/06/24 职场文书
遗嘱范文
2015/08/07 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
用python实现监控视频人数统计
2021/05/21 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python