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的一些用法分享
Oct 07 Python
Python入门篇之列表和元组
Oct 17 Python
python Django批量导入不重复数据
Mar 25 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
django列表筛选功能的实现代码
Mar 27 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python爬虫用request库处理cookie的实例讲解
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
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
javascript 打印页面代码
2009/03/24 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
Python isinstance函数介绍
2015/04/14 Python
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
python中的字符串内部换行方法
2018/07/19 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
小学生安全保证书
2014/02/01 职场文书
政府门卫岗位职责
2014/04/29 职场文书
难忘的一课教学反思
2014/04/30 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
捐助倡议书
2015/01/19 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
告知书格式
2015/07/01 职场文书
python中subplot大小的设置步骤
2021/06/28 Python