用Python写一个模拟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()

 

 

你可能感兴趣的:(点滴记录)