標籤:
不多說,直接上代碼
client.py
#!/usr/bin/pythonimport socket,sys,stringhost="localhost"port=8000def 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-8import socketimport threading,sys,stringport=8000list=50dic={}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,應該是比較好理解的
python tcp socket 多線程