• python一个简单的web服务器和客户端


    服务器:

         当客户联系时创建一个连接套接字
         从这个连接接收HTTP请求(*)
         解释该请求所请求的特定文件 
         从服务器的文件系统获取该文件
         并发送文件内容
         如果文件不存在,则返回“404 Not Found”(*)

    客户端:

        客户端可以与服务器建立TCP连接

        客户端通过TCP连接请求服务器端的某一文件

        在客户端显示介绍到的文件内容


    注:在运行此文件前,server.py目录下需要包含file文件夹,里面装有服务器里的文件,客户端可以向服务器请求file里的文件。

    readme:首先打开server.py,开启服务器
            然后打开client.py,输入文件名,包括后缀
            服务器文件系统为file文件夹
            client.py的命令行窗口中出现文件的具体信息
            按任意键关闭客户端



    client.py
    [python] view plain copy
     
    1. import socket  
    2. serverName = '127.0.0.1'  
    3. serverPort = 50008  
    4. clientSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
    5. clientSocket.connect((serverName,serverPort))  
    6. print 'Input the http request:'  
    7. sentence = ''  
    8. while True:  
    9.     tmp = raw_input()  
    10.     sentence = sentence + tmp  
    11.     if(tmp==''):break  
    12. clientSocket.send(sentence)  
    13. receiveSentence = clientSocket.recv(1024)  
    14. print 'From Server:', receiveSentence  
    15. isEnd = raw_input()  
    16. clientSocket.close()  

    server.py
    [python] view plain copy
     
    1. import socket  
    2. import os  
    3.   
    4. serverPort = 50008  
    5. serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
    6. serverSocket.bind(('127.0.0.1',serverPort))  
    7. serverSocket.listen(1)  
    8. print 'The server is ready to receive'  
    9. while 1:  
    10.     connectionSocket, addr = serverSocket.accept()       
    11.     sentence = connectionSocket.recv(1024)  
    12.     ans = ''  
    13.     flag = False;  
    14.     for ch in sentence:  
    15.         if(ch == ' ' and flag ==True):break  
    16.         if(flag == True):  
    17.             ans = ans + ch;  
    18.         elif(ch==' '):  
    19.             flag = True;       
    20.               
    21.     path = 'file//' + ans  
    22.     if(os.path.exists(path)==False):  
    23.         connectionSocket.send('404 Not Found')  
    24.     else:  
    25.         file = open( path,'r')  
    26.         while 1:  
    27.             data = file.read(1024)  
    28.             if not data:break  
    29.             connectionSocket.send(data)  
    30.         file.close()  
    31. connectionSocket.close()  
  • 相关阅读:
    System.Web.HttpException: 应用程序已预编译,因此不允许使用目录“/App_Code/”。
    ASP.NET导出Excel文件
    简单易学的OA报表
    input添加邮箱的时候自动显示后缀
    Sql Server中存储过程执行很快,但程序调用时执行非常慢的问题(连接超时)
    C#如何卸载已安装的Windows Service服务
    CSS专题(二):元素大小与位置offsetLeft offsetTop offsetWidth offsetHeight clientWidth clientHeight scrollWidth scrollHeight scrollLeft scrollTop
    Eclipse maven构建springmvc项目
    49个jQuery代码经典片段
    CSS专题(一):Background
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/8999227.html
Copyright © 2020-2023  润新知