利用Python实现多线程聊天功能

关于Python网络编程,写了一个利用多线程、套接字等,实现多线程聊天功能,可以随时的发送,接收,可利用网络调试助手进行本地测试。源代码如下:

#-*- coding:utf-8 -*-
from threading import Thread
from socket import *
#1.实现接收消息
def recvDate():
    while True:
        recvInfo = udpSocket.recvfrom(1024)
        print("\r\n>>%s:%s"%(str(recvInfo[1]),recvInfo[0].decode("gb2312")))
        print("<<")

#2.实现发送消息
def sendDate():
    while True:
        sendInfo = input("<<")
        udpSocket.sendto(sendInfo.encode("gb2312"),(destIp,destPort))

udpSocket = None
destIp = ""
destPort = 0

def main():
    #改变全局变量时才加global
    global udpSocket
    global destIp
    global destPort

    udpSocket = socket(AF_INET, SOCK_DGRAM)


    destIp = input("请输入目的ip:")
    destPort = int(input("请输入目的端口:"))
    localPort = int(input("请输入本程序的端口号:")) 
    udpSocket.bind(("",localPort))  #绑定端口号
    re = Thread(target = recvDate)  #线程1
    rh = Thread(target = sendDate)  #线程2

    re.start()
    rh.start()

    re.join() #等待至线程中止
    rh.join()

if __name__ == "__main__":
    main()

主要利用的方法就是,套接字的创建,多线程并发控制,端口号绑定,消息的接收、发送。

你可能感兴趣的:(Python,计算机网络,python从入门到精通)