欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python Socket编程之多线程聊天室

程序员文章站 2023-10-30 16:05:28
本文为大家分享了Python多线程聊天室,是一个Socket,两个线程,一个是服务器,一个是客户端。 最近公司培训,要写个大富翁的小程序,准备做个服务器版的,先练练手。...

本文为大家分享了Python多线程聊天室,是一个Socket,两个线程,一个是服务器,一个是客户端。
最近公司培训,要写个大富翁的小程序,准备做个服务器版的,先练练手。

代码:

#coding = utf-8

import socket
import threading

class UdpServer(threading.Thread):
  def __init__(self):
    threading.Thread.__init__(self)
    self.address = ('127.0.0.1', 10000)
    self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    self.s.bind(self.address)
    self.stop_flag = False


  def recieve_msg(self):
    (data, addr) = self.s.recvfrom(2048)
    if data:
      print 'recieve data from', addr
      print data

  def run(self):
    while not self.stop_flag:
      self.recieve_msg()

  def stop(self):
    self.stop_flag = True

class UdpClient(threading.Thread):
  def __init__(self):
    threading.Thread.__init__(self)
    self.address = ('127.0.0.1', 10001)
    self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    self.stop_flag = False

  def send_msg(self):
    data = raw_input()
    if not data:
      print 'Wrong inpiut'
      return
    else:
      self.s.sendto(data, self.address)

  def run(self):
    while not True:
      self.send_msg()


  def stop(self):
    self.stop_flag = True


def main():
  t1 = UdpServer()
  t2 = UdpClient()
  t1.start()
  t2.start()



if __name__ == '__main__':
  main()

Python Socket编程之多线程聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。