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 内置函数complex详解
Oct 23 Python
PyQt5每天必学之进度条效果
Apr 19 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
python对象与json相互转换的方法
May 07 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
python属于跨平台语言码
Jun 09 Python
python代码实现图书管理系统
Nov 30 Python
Python图像处理之图像拼接
Apr 28 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
利用Python实现模拟登录知乎
May 25 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下载文件名中解决乱码的问题
2013/06/20 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
javascript 常用功能总结
2012/03/18 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
tensorflow常用函数API介绍
2020/04/19 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
linux下进程间通信的方式
2014/12/23 面试题
导购员的岗位职责
2014/02/08 职场文书
廉洁自律承诺书
2014/03/27 职场文书
公司门卫工作职责
2014/06/28 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
股东出资证明书范例
2014/10/04 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
大学生实习证明
2015/06/16 职场文书
七夕情人节问候语
2015/11/11 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript