用Python写一个模拟qq聊天小程序

本文介绍了一个使用Python和socket库创建的QQ聊天模拟程序。该程序通过定义两个线程实现消息的发送和接收,能够在同一时间进行双向通信,提供全双工聊天体验。用户输入对方IP和端口后,即可开始聊天。
摘要由CSDN通过智能技术生成

语言环境: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()

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值