python tcp socket 多线程

不多说,直接上代码

client.py

#!/usr/bin/python

import socket,sys,string
host="localhost"
port=8000

def main():
    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.connect((host,port))
    message = raw_input("please input whath you want to search:")
    sock.send(message.strip())
    print sock.recv(1024)
    sock.close()

if __name__=="__main__":
    while True:
        main()

server.py

#coding=utf-8
import socket
import threading,sys,string

port=8000
list=50
dic={}
def varDefine():
    print "you can define variable, eg: foo=2014"
    while True:
        str=raw_input()
        result=str.split('=')
        dic[result[0].strip()]=result[1].strip()


def handle(client,address):
    try:
        client.settimeout(500)
        buf=client.recv(1024)
        if buf in dic.keys():
            client.send(str(dic[buf]))
        else:
            client.send("%s is not define, please define first " % buf)
    except socket.timeout:
        print 'time out'
    client.close()


def main():

    thread=threading.Thread(target=varDefine)
    thread.start()

    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.bind(('localhost',port))
    sock.listen(list)
    
    while True:
        client,address = sock.accept()
        handleRequest = threading.Thread(target=handle,args=(client,address))
        handleRequest.start()





if __name__=="__main__":
    main()

en,应该是比较好理解的

posted on 2015-05-11 22:15  追寻前人的脚步  阅读(1512)  评论(0编辑  收藏  举报

导航