Python: Socket编程之多线程聊天室

额,好吧,这标题有点大了,就是一个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()

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值