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编程之多线程聊天室

相关推荐