python 开发简单的聊天工具
python 太强大了,以至于它什么都可以做,哈哈,开个玩笑。但是今天要讲的真的是一个非常神奇的应用。
使用python写一个聊天工具
其实大家平时用的QQ类似的聊天工具,也是使用socket进行聊天,只是它还包含了更加复杂的功能。基本原理是一样的。
python实现聊天功能,主要用到了socket模块。下面直接上实例吧
server端
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import sockets=socket.socket()#建立socket链接s.bind(('127.0.0.1',8000))#监听连接请求,其中的1 ,是指监听一个s.listen(1)#进行循环,一直监听client发来的消息while 1:#获取链接IP和端口 conn,addr=s.accept() print '['+addr[0]+':'+str(addr[1])+'] send a message to me: '+conn.recv(1024) conn.sendall('I received a message from ['+addr[0]+':'+str(addr[1])+']')s.close() |
client 端,比较简单不需要监听,不需要循环
|
1
2
3
4
5
6
7
8
9
|
import sockets=socket.socket()#链接s.connect(('127.0.0.1', 8000))#获取键盘输入msg = raw_input("Please input your message:")s.sendall(msg)print s.recv(1024)s.close() |
python 开发简单的聊天工具的更多相关文章
- python 开发简单的聊天工具-乾颐堂
python 太强大了,以至于它什么都可以做,哈哈,开个玩笑.但是今天要讲的真的是一个非常神奇的应用. 使用python写一个聊天工具 其实大家平时用的QQ类似的聊天工具,也是使用socket进行聊天 ...
- Python开发简单爬虫 - 慕课网
课程链接:Python开发简单爬虫 环境搭建: Eclipse+PyDev配置搭建Python开发环境 Python入门基础教程 用Eclipse编写Python程序 课程目录 第1章 课程介绍 ...
- Java之简单的聊天工具
今天整理资料的时候,找出自己几年前刚学Java时做过的一个简易的聊天工具,有服务器也有客户端,能发送文字消息和文件,但是用户上线并未存入数据库,而只是简单的缓存在服务器的一个数组中,所以,只要服务器一 ...
- python实现简单的聊天小程序
概要 这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室 实现思路 x01 服务端的建立 首先,在服 ...
- Python开发简单记事本
摘要: 本文是使用Python,结合Tkinter开发简单记事本. 本文的操作环境:ubuntu,Python2.7,采用的是Pycharm进行代码编辑,个人很喜欢它的代码自动补齐功能. 最近很想对p ...
- supervisor python开发的进程管理工具
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- Python开发一个WEB聊天室
项目实战:开发一个WEB聊天室 功能需求: 用户可以与好友一对一聊天 可以搜索.添加某人为好友 用户可以搜索和添加群 每个群有管理员可以审批用户的加群请求,群管理员可以用多个,群管理员可以删除.添加. ...
- python开发目录合并小工具 PathMerge
前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...
- 用python开发简单ftp程序
根据alex老师视频开发的简单ftp程序,只能实现简单的get功能 ftp客户端程序: #!/usr/bin/env python #_*_ coding:utf-8 _*_ import socke ...
随机推荐
- SVM对偶形式
dual svm 对偶SVM linear SVM 可以用二次规划方法解 xn通过非线性转换变成zn SVM配合非线性特征转换 透过large-margin降低模型复杂度 透过特征转换得到弯弯曲曲的边 ...
- View.setTag()的作用
//这个东西在一些需要用到Adapter自定控件显示方式的时候非常有用 //Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用 public View g ...
- YouTube视频代码总结
var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api" ...
- Debian6安装XP系统
1.下载一键包,必须要在 root目录 下执行,可以先用 pwd 命令查看当前所在目录.执行命令:wget http://d.yxlgh.com/vps/zmdebian6xp.sh 2.执行 zmd ...
- cx_Oracle使用方法一
cx_Oracle使用方法 正确安装好cx_oracle之后,要使用它来连接到oracle数据库进行操作,具体应该分3步走: 第一步:导入cx_Oracle ,建立连接 >>> im ...
- 【python】【转】Python生成随机数的方法
如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文 ...
- codeforces 359 C - Robbers' watch
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description Robb ...
- autoconf automake libtool
这是一个 autoconf / automake 的 "Hello World"gztt.ll@gmail.com 主要步骤是- 准备工程目录结构和程序- autoscan 生成 ...
- MySQL中group_concat函数,用符号连接查询分组里字段值
http://blog.csdn.net/my_yang/article/details/7186844
- linux下常用网络操作汇总
首先说明下RHEL6下设置IP地址的确和RHEL5下有几点是不同的. 我装完RHEL6中默认选择的是DHCP自动获取方式: [root@localhost ~]# vi /etc/sysconfig/ ...