香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2022-04-02 10:22 作者:admin610456


python/' target='_blank'>python 超简单的聊天程序

客户端:

import socket, syshost = '10.248.27.23'# host = raw_input("Plz imput destination IP:")# data = raw_input("Plz imput what you want to submit:")port = 51423s = 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, syshost = ''port = 51423s = 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 Threadfrom 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 = Nonedesip = ""desport = 0def 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()

总结

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

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)