当前位置: 移动技术网 > IT编程>脚本编程>Python > Python Socket编程之多线程聊天室

Python Socket编程之多线程聊天室

2018年08月08日  | 移动技术网IT编程  | 我要评论

北京养生堂,福州一中网校,最新军情观察室

本文为大家分享了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()

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网