【计算机网络】WebServer实现并从本机读取多个文件
来源:互联网 发布:幼儿园食谱软件下载 编辑:程序博客网 时间:2024/06/07 04:44
这是《计算机网络(自顶向下方法)》第二章练习题的实现
有两个问题还有待解决:
- 什么是多线程
- 如何发送HTTP HEADER及其意义
client.py
__author__ = 'yang'import socketserverName = 'hostname'serverPort = 12000clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)clientSocket.connect((serverName, serverPort))filenames = raw_input('Input filenames, split by comma:\n')#print filenamesclientSocket.send(filenames)fileContent = clientSocket.recv(2048)print fileContent
webserver.py
__author__ = 'yang'import socketserverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)serverPort = 12000serverSocket.bind(('', serverPort))serverSocket.listen(1)print 'Ready to serve\n'while 1: print 'start' connectionSocket, addr = serverSocket.accept() message = connectionSocket.recv(2048) print message filename = message.split(',') outputdata = [] for i in range(0,len(filename)): with open(filename[i]) as file: outputdata.append(file.read()) #send one HTTP header line into socket,此处还未完成 #print outputdata,len(outputdata) #send the content of the requested file to the client fileContent = '' for i in range(0,len(outputdata)): fileContent = fileContent + outputdata[i] print fileContent connectionSocket.send(fileContent) connectionSocket.close() #send response message for file not found #connectionSocket.send("file not found")serverSocket.close()
还有一个问题,即客户端收到服务器的一个段后应何时关闭套接字。
我个人认为这应该是又HTTP协议中决定的,不知道代码中是否需要
clientSocket.close()
1 0
- 【计算机网络】WebServer实现并从本机读取多个文件
- 使用FileInputStream类, 实现从磁盘读取本应用程序源代码文件,并将文件内容显示在屏幕上。
- jmeter从文件中读取参数,并实现循环
- 我的第一个C#程序:从多个文本文件中读取数据到SqlServer并实现增删改查
- python实现读取本地多个TXT文件内容并发送邮件
- 从一个java项目里面读取多个Java文件到一个txt实现备份
- Servlet从本机读取一个图片,并显示在html页面
- flex读取本机文件
- Python读取多个txt文件并进行保存
- 最近写了一个从数据库中读取文件并写在txt文件中(当数据过多的时候写在多个txt文件中)
- 从文件中读取数字并排序
- 从文件中读取信息 并处理
- 从数据库读取文件并下载
- 从xml文件中读取一个接点或者多个
- MFC从多个EDIT中读取和保存文件
- 本实例创建Swing窗体,单击窗体中的“写入文件”按钮实现写入功能,单击“读取文件”按钮实现从文件中读取信息显示在文本框中
- 读取网络上的图片并保存到本机,图片文件的文件名不变
- 如何把位图读入内存中并显示?实现从打包文件中读取bmp文件并显示!
- IOS开发系列——设备信息专题【整理,部分原创】
- Struts2 过滤器实现只允许POST请求
- 搭建MySQL云服务器无法远程问题
- json字符串转换为object对象
- Ubuntu 14.04 搭建MTK Android源码编译环境搭建
- 【计算机网络】WebServer实现并从本机读取多个文件
- 矢量中断-非矢量中断
- vs2010+opencv2.4.9+qt5.5 的安装配置+Vassistx 识别QT函数自动补全代码
- 利用commands模块执行Linux shell命令
- orm2 中文文档 2. 设置
- IOS开发系列——APP间相互调用专题【整理,部分原创】
- ios 常用方法
- instanceof and getClass()
- Golang初级系列教程-控制结构-ifelse