python3实现多线程聊天室

yipeiwu_com7年前Python基础

使用python3创建多线程聊天室,供大家参考,具体内容如下

import threading 
import socket
 
#socket
udpSocket = None
#计数器
num = 1
 
#1.创建接受,发送方法
def inMessage():
  global num
  while True:
    #等待接收消息
    data = udpSocket.recvfrom(1024)
    #4. 将接收到的数据再发送给对方
    udpSocket.sendto(data[0], data[1])
    #打印获得的消息
    print("\r>> 消息%d => 来自:%s => %s"%(num,data[1],data[0].decode('gb2312')))
    print('\r>>',end='')
    #消息数量+1
    num+=1
 
def outMessage():
  while True:
    #发送地址
    sendAddr = ('192.168.106.132',8080)
    #获得输入数据
    senddata = input('\r>>')
    #发送消息
    udpSocket.sendto(senddata.encode('gb2312'),sendAddr)
 
 
#2.使用多线程执行接收发送
def main():
  global udpSocket
  
  #创建socket
  udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  #绑定端口
  udpSocket.bind(('',8686))
 
  #创建线程
  t1 = threading.Thread(target=inMessage)
  t2 = threading.Thread(target=outMessage)
 
  #启动线程
  t1.start()
  t2.start()
 
  #主线程堵塞
  t1.join()
  t2.join()
 
#3.主方法运行
if __name__ == "__main__":
  main()

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 普通最小二乘法(OLS)进行多项式拟合的方法

Python 普通最小二乘法(OLS)进行多项式拟合的方法

多元函数拟合。如 电视机和收音机价格多销售额的影响,此时自变量有两个。 python 解法: import numpy as np import pandas as pd #impo...

通过字符串导入 Python 模块的方法详解

通过字符串导入 Python 模块的方法详解

我们平时导入第三方模块的时候,一般使用的是 import 关键字,例如: import scrapy from scrapy.spider import Spider 但是如果各位...

python代码实现ID3决策树算法

本文实例为大家分享了python实现ID3决策树算法的具体代码,供大家参考,具体内容如下 ''''' Created on Jan 30, 2015 @author: 史帅...

python删除文件夹下相同文件和无法打开的图片

前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题...

Python3.6.0+opencv3.3.0人脸检测示例

Python3.6.0+opencv3.3.0人脸检测示例

网上有很多关于Python+opencv人脸检测的例子,并大都附有源程序。但是在实际使用时依然会遇到这样或者那样的问题,在这里给出常见的两种问题及其解决方法。 先给出源代码:(如下)...