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 获得13位unix时间戳的方法
Oct 20 Python
Python中进程和线程的区别详解
Oct 29 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python redis连接 有序集合去重的代码
Aug 04 Python
详解Python打包分发工具setuptools
Aug 05 Python
opencv3/C++图像像素操作详解
Dec 10 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 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世纪万年历
2006/12/06 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
深入理解javascript中的this
2021/02/08 Javascript
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
python 消费 kafka 数据教程
2019/12/21 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
年会活动策划方案
2014/01/23 职场文书
视光学专业自荐信
2014/06/24 职场文书
授权委托书
2014/09/17 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
公务员年度个人总结
2015/02/12 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS