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新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python实时获取cmd的输出
Dec 13 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
python opencv读mp4视频的实例
Dec 07 Python
Django 自定义分页器的实现代码
Nov 24 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Python request操作步骤及代码实例
Apr 13 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
matplotlib 三维图表绘制方法简介
Sep 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中Memcache操作类及用法实例
2014/12/12 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python回调函数用法实例详解
2015/07/02 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python返回数组/List长度的实例
2018/06/23 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python通过实例讲解反射机制
2019/10/17 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
小饰品店的创业计划书范文
2013/12/28 职场文书
英文商务邀请信
2014/01/22 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
优秀党支部申报材料
2014/12/24 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
教师节老师寄语
2015/05/28 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL