利用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()
主要利用的方法就是,套接字的创建,多线程并发控制,端口号绑定,消息的接收、发送。
还没有评论,来说两句吧...