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编程之多线程聊天室。昨日梦见了犹豫,达到理想不太易,即使有信心,斗志却抑制!更多关于Python Socket编程之多线程聊天室请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
python网络编程之多线程同时接受和发送

python进阶之多线程对同一个全局变量的处理方法

Python多线程编程之多线程加锁操作示例

selenium+python自动化测试之多窗口切换

Python并发之多进程的方法实例代码