用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验证码识别的方法
Jul 10 Python
Python引用计数操作示例
Aug 23 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
学python安装的软件总结
Oct 12 Python
Python多线程获取返回值代码实例
Feb 17 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
python新手学习使用库
Jun 11 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
Python爬虫之Selenium库的使用方法
Jan 03 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操作mysql数据库类
2014/12/08 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
大学生就业意向书范文
2014/04/01 职场文书
先进人物事迹材料
2014/12/29 职场文书
失职检讨书大全
2015/01/26 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书