python实现聊天小程序

本文实例为大家分享了python实现聊天小程序的具体代码,供大家参考,具体内容如下

我这里实现的是客户端与服务端进行通信的功能,比较简单,与上一篇文章的群聊不太一样。

服务端server.py

#-*- coding:utf-8 -*-
import socket, traceback, sys

host = ''
port = 51423

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)

ClientSock, ClientAddr = s.accept()
while 1:
 try:
  buf = ClientSock.recv(1024)
  if len(buf):
   print "客户端说: " + buf
  data = raw_input("服务端说: ")
  ClientSock.sendall(data)
 except:
  print "Dialogue Over"
  ClientSock.close()
  sys.exit(0)

客户端client.py

#-*- coding:utf-8 -*-
import socket, sys

host = '192.168.80.21'
# host = raw_input("Plz imput destination IP:")
# data = raw_input("Plz imput what you want to submit:")
port = 51423

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
 s.connect((host, port))
except socket.gaierror, e:
 print "Address-related error connecting to server: %s" % e
 sys.exit(1)
except socket.error, e:
 print "Connection error: %s" % e
 sys.exit(1)

while 1:
 try:
  data = raw_input("客户端说: ")
  s.send(data)
  buf = s.recv(1024)
  if len(buf):
   print "服务端说: " + buf
 except:
  print "Dialogue Over"
  s.close()
  sys.exit(0)

结果展示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Python使用django框架实现多人在线匿名聊天的小程序
  • Python基于Socket实现的简单聊天程序示例
  • Python聊天室实例程序分享
  • 使用Python的Tornado框架实现一个一对一聊天的程序
  • python聊天程序实例代码分享
  • 简单实现python聊天程序
时间: 2018-03-12

python聊天程序实例代码分享

代码简单,直接看代码吧: 复制代码 代码如下: import socketimport threadingimport re#import Tkinter def ser():    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    s.bind(('',33333))    s.listen(1)    conn,addr=s.accept()    while True:        print '[%s:%d] send a me

简单实现python聊天程序

本文实例为大家分享了简单实现python聊天程序的具体代码,供大家参考,具体内容如下 客户端 #coding:utf-8 import socket, sys host = 'localhost' port = 10001 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) print 'socket创建成功' try: s.connect((host,port)) print '连接成功' except: sys.exit(1) while

Python聊天室实例程序分享

上一篇 我们学习了简单的Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 一.聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 我们要实现的有两部分: Chat Server:聊天服务器,负责与用户建立 Socket 连接,并将某个用

Python基于Socket实现的简单聊天程序示例

本文实例讲述了Python基于Socket实现的简单聊天程序.分享给大家供大家参考,具体如下: 需求:SCIENCE 和MOOD两个人软件专业出身,厌倦了大众化的聊天软件,想着自己开发一款简易的聊天软件,满足他们的个性化需求,又不失"专业水准",Talk is easy, try to code it. 技术:socket,详细可参考前文:Python Socket实现简单TCP Server/client功能 语言:python 尽管socket区分服务器和客户端,但是在聊天程序中两

Python使用django框架实现多人在线匿名聊天的小程序

最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗口,代表一个用户): http://zhaozhaoli.vicp.io/chatroom/happy/ 移动端聊天效果图: 网页版聊天效果图: 实现思路: 发送的消息通过ajax先写入数据库,通过ajax的循环请求,将写入数据库的消息显示到前端界面. 前端核心代码: <script> $(fun

使用Python的Tornado框架实现一个一对一聊天的程序

按思路来聊: 类似微信,点击用户可以进入一对一聊天页面:另有聊天框列表包含所有存在聊天记录的一对一聊天框,点击进入聊天页面. [数据结构] 因为双方都有聊天记录,所以每一个聊天实际上得储存两份,设计的数据结构如下: A : user_a = {"id":1,"name":"A"} B : user_b = {"id":2,"name":"B"} A的聊天记录: chat_a = { &q

使用Python的Tornado框架实现一个简单的WebQQ机器人

我打算将WebQQ单独出来运行, 一开始直接拷贝了pyxmpp2的mainloop, 但是跑起来问题多多, 所以我又研究了利用Tornado进行网络编程(这里), 所以我放弃了Pyxmpp2的mainloop,使用Tornado进行重写 首先放出项目代码 引子 WebQQ协议是一套基于HTTP的QQ协议, 而用Python的urllib2库进行请求太慢, 因为HTTP本身就使用socket请求, 所以改用多路复用I/O模型, 而Tornado简单高效, 看过代码后可以轻松上手.平台兼容性很好,

使用Python的Tornado框架实现一个Web端图书展示页面

首先,为什么选择Tornado: 1.高性能的网络库,这可以和gevent,twisted,libevent等做对. 提供了异步io支持,超时事件处理,在此基础上提供了tcpserver,httpclient,尤其是curlhttpclient, 在现有http客户端中肯定排第一.可以用来做爬虫,游戏服务器,据我所知业界已有使用tornado作为游戏服务器 2.web框架,这可以和django,flask对. 提供了路由,模板等web框架必备组件.与其他区别是tornado是异步的,天然适合长轮

Python的Tornado框架异步编程入门实例

Tornado Tornado 是一款非阻塞可扩展的使用Python编写的web服务器和Python Web框架, 可以使用Tornado编写Web程序并不依赖任何web服务器直接提供高效的web服务.所以Tornado不仅仅是一个web框架而且还是一款可以用于生产环境的高效的web服务器 Torando 在Linux和FreeBSD上使用高效的异步I/O模型 epoll 和kqueue来实现高效的web服务器, 所以 tornado在Linux上和FreeBSD系列性能可以达到最高 接口 当然

Python的Tornado框架的异步任务与AsyncHTTPClient

高性能服务器Tornado Python的web框架名目繁多,各有千秋.正如光荣属于希腊,伟大属于罗马.Python的优雅结合WSGI的设计,让web框架接口实现千秋一统.WSGI 把应用(Application)和服务器(Server)结合起来.Django 和 Flask 都可以结合 gunicon 搭建部署应用. 与 django 和 flask 不一样,tornado 既可以是 wsgi 应用,也可以是 wsgi 服务.当然,选择tornado更多的考量源于其单进程单线程异步IO的网络模

剖析Python的Tornado框架中session支持的实现代码

tornado 里面没有 session?不,当然有~我知道 github 上肯定有人帮我写好了~ O(∩_∩)O~       于是乎,找到下面这个项目,用 memcached 实现 tornado 的 session.光会用可不行啊,让我们看看是怎么写的~ 项目地址:tornado-memcached-sessions         让我们先从 demo 看起.... app.py 中:      首先可以注意到,这里定义了一个新的 Application 类,继承于 tornado.we

Python的Tornado框架实现异步非阻塞访问数据库的示例

tornado即是一个http非阻塞服务器, 就要用起来, 我们将用到tornado框架 ,mongodb数据库 以及motor(mongodb的异步驱动).来简单实现tornado的非阻塞功能. 其他环境支持的下载与安装 1.安装mongodb $ sudo apt-get install update $ sudo apt-get install mongodb 2.安装motor $ pip install motor 非阻塞 # conf.py import os import moto

为Python的Tornado框架配置使用Jinja2模板引擎的方法

tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定使用他. 下载jinja2 还是用pip 下载(用的真是爽) pip install jinja2 这样就可以使用了. tornado与jinja2 整合 tornado和jinja2整合起来很简单(其实是网上找的比较简单), 不知道从那里找到的反正找到了,不说了直接上代码 #coding:utf-8 import tornado.web from jinj

Python的Tornado框架实现图片上传及图片大小修改功能

图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 type="file" 指定上传类型. <form action="/" enctype="multipart/form-data" method="post"> <input type="file&

用Python的Tornado框架结合memcached页面改善博客性能

原因 Blog是一个更新并不很频繁的一套系统,但是每次刷新页面都要更新数据库反而很浪费资源,添加静态页面生成是一个解决办法,同时缓存是一个更好的主意,可以结合Memcached添加少量的代码进行缓存,而且免去去了每次更新文章都要重新生成静态页面,特别当页面特别多时. 实现 主要通过页面的uri进行缓存,结合tornado.web.RequestHandler的prepare和on_finish方法函数, prepare 主要是请求前执行,on_finish()是请求结束之前执行.在渲染模板时缓存