• 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,应该是比较好理解的

  • 相关阅读:
    win10 下安装 tesseract + tesserocr
    win 10 家庭中文版安装docker ,但是没有 Hyper-V , 这样一步搞定
    Pycharm 分屏
    cookie 和 session
    retrying 模块
    Pychram 运行程序在 run 窗口和 python console 窗口之间切换
    封装、继承、多态
    泛型、反射、注解
    多线程笔记
    多线程
  • 原文地址:https://www.cnblogs.com/cdwodm/p/4495868.html
Copyright © 2020-2023  润新知