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

川长思鸟来 2022-06-10 09:18 283阅读 0赞

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

  1. #-*- coding:utf-8 -*-
  2. from threading import Thread
  3. from socket import *
  4. #1.实现接收消息
  5. def recvDate():
  6. while True:
  7. recvInfo = udpSocket.recvfrom(1024)
  8. print("\r\n>>%s:%s"%(str(recvInfo[1]),recvInfo[0].decode("gb2312")))
  9. print("<<")
  10. #2.实现发送消息
  11. def sendDate():
  12. while True:
  13. sendInfo = input("<<")
  14. udpSocket.sendto(sendInfo.encode("gb2312"),(destIp,destPort))
  15. udpSocket = None
  16. destIp = ""
  17. destPort = 0
  18. def main():
  19. #改变全局变量时才加global
  20. global udpSocket
  21. global destIp
  22. global destPort
  23. udpSocket = socket(AF_INET, SOCK_DGRAM)
  24. destIp = input("请输入目的ip:")
  25. destPort = int(input("请输入目的端口:"))
  26. localPort = int(input("请输入本程序的端口号:"))
  27. udpSocket.bind(("",localPort)) #绑定端口号
  28. re = Thread(target = recvDate) #线程1
  29. rh = Thread(target = sendDate) #线程2
  30. re.start()
  31. rh.start()
  32. re.join() #等待至线程中止
  33. rh.join()
  34. if __name__ == "__main__":
  35. main()

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

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线实现双人聊天

    这个demo模拟了老师和学生的对话聊天功能。使用网络编程和多线程方式实现。 实现模拟老师和学生聊天的关键点就是 学生端既可以是发送方,也可以是接收方 老师端同样既