用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脚本实现12306火车票查询系统
Sep 30 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
selenium+python自动化测试之页面元素定位
Jan 23 Python
详解python数据结构和算法
Apr 18 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
Python pysnmp使用方法及代码实例
Aug 24 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
原生js实现日历效果
2020/03/02 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python实现日常记账本小程序
2018/03/10 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
解决python对齐错误的方法
2020/07/16 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
咖啡馆创业计划书
2014/01/26 职场文书
大学班长的职责
2014/01/27 职场文书
单位活动策划方案
2014/08/17 职场文书
苏州园林导游词
2015/02/03 职场文书
趣味运动会广播稿
2015/08/19 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android