用Python写一个模拟qq聊天小程序的代码实例


Posted in Python onMarch 06, 2019

Python 超简单的聊天程序

客户端:

import socket, sys
host = '10.248.27.23'
# 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("I say: ")
    s.send(data)
    buf = s.recv(1024)
    if len(buf):
      print "he say: "+buf
  except:
    print "Dialogue Over"
    s.close()
    sys.exit(0)

服务器:

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 "he say: "+buf
    data = raw_input("I say: ")
    ClientSock.sendall(data)
  except:
    print "Dialogue Over"
    ClientSock.close()
    sys.exit(0)

模拟qq聊天,语言环境:Python3

示例代码:

# 编写一个程序,模拟qq聊天
# 要求:程序可以同时发消息和收消息,发和收的过程中程序不退出
# 思路:使用socket来完成(socket 是全双工模式,可以实现收和发同时进行),定义俩个线程,一个负责发消息、一个负责收消息
from threading import Thread
from socket import *
def rec_data():
  while True:
    rec_info = udpsocket.recvfrom(1024)
    print("\r>>%s:%s" % (rec_info[1], rec_info[0].decode("gb2312")))
    print("<<", end="")
def send_date():
  while True:
    send_mes = input("<<")
    udpsocket.sendto(send_mes.encode("gb2312"), (desip, desport))
udpsocket = None
desip = ""
desport = 0
def main():
  global udpsocket
  global desip
  global desport
  desip = input("对方IP:")
  desport = int(input("对方端口:"))
  udpsocket = socket(AF_INET, SOCK_DGRAM)
  udpsocket.bind(("", 9001))
  tr = Thread(target=rec_data)
  ts = Thread(target=send_date)
  tr.start()
  ts.start()
  tr.join()
  ts.join()
if __name__ == '__main__':
  main()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python实现删除文件但保留指定文件
Jun 21 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Flask框架web开发之零基础入门
Dec 10 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
python文件写入write()的操作
May 14 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
详解Anaconda 的安装教程
Sep 23 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
Django使用echarts进行可视化展示的实践
Jun 10 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 Python
Python二叉树的镜像转换实现方法示例
Mar 06 #Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 #Python
Python中一般处理中文的几种方法
Mar 06 #Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 #Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 #Python
详解django2中关于时间处理策略
Mar 06 #Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 #Python
You might like
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
Python实现抢购IPhone手机
2018/02/07 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
python修改txt文件中的某一项方法
2018/12/29 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
python pymysql库的常用操作
2020/10/16 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
实习单位接收函
2014/01/11 职场文书
自我鉴定标准格式
2014/03/19 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
综合内勤岗位职责
2014/04/14 职场文书
开学典礼演讲稿
2014/05/23 职场文书
大班亲子运动会方案
2014/06/10 职场文书
小学感恩节活动总结
2015/03/24 职场文书
机关保密工作承诺书
2015/05/04 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP