zoukankan      html  css  js  c++  java
  • 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,应该是比较好理解的

  • 相关阅读:
    CentOS7 虚拟机搭建、初始设置、简单使用
    Oozie-4.0.0-cdh5.3.6搭建
    ionic开发环境搭建
    nodejs+chromium 创建桌面应用程序
    常用mysql笔记
    javascript 操作 css Rule
    javascript正则表达式笔记
    grunt之dev-pro环境切换
    grunt之入门实践
    动态加载js
  • 原文地址:https://www.cnblogs.com/cdwodm/p/4495868.html
Copyright © 2011-2022 走看看