服務器:
當客戶聯系時創建一個連接套接字
從這個連接接收HTTP請求(*)
解釋該請求所請求的特定文件
從服務器的文件系統獲取該文件
從服務器的文件系統獲取該文件
並發送文件內容
如果文件不存在,則返回“404 Not Found”(*)
注:在運行此文件前,server.py目錄下需要包含file文件夾,里面裝有服務器里的文件,客戶端可以向服務器請求file里的文件。
readme:首先打開server.py,開啟服務器
然后打開client.py,輸入文件名,包括后綴
服務器文件系統為file文件夾
client.py的命令行窗口中出現文件的具體信息
按任意鍵關閉客戶端
client.py
server.py
客戶端:
客戶端可以與服務器建立TCP連接
客戶端通過TCP連接請求服務器端的某一文件
在客戶端顯示介紹到的文件內容
注:在運行此文件前,server.py目錄下需要包含file文件夾,里面裝有服務器里的文件,客戶端可以向服務器請求file里的文件。
readme:首先打開server.py,開啟服務器
然后打開client.py,輸入文件名,包括后綴
服務器文件系統為file文件夾
client.py的命令行窗口中出現文件的具體信息
按任意鍵關閉客戶端

client.py
- import socket
- serverName = '127.0.0.1'
- serverPort = 50008
- clientSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- clientSocket.connect((serverName,serverPort))
- print 'Input the http request:'
- sentence = ''
- while True:
- tmp = raw_input()
- sentence = sentence + tmp
- if(tmp==''):break
- clientSocket.send(sentence)
- receiveSentence = clientSocket.recv(1024)
- print 'From Server:', receiveSentence
- isEnd = raw_input()
- clientSocket.close()
server.py
- import socket
- import os
- serverPort = 50008
- serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- serverSocket.bind(('127.0.0.1',serverPort))
- serverSocket.listen(1)
- print 'The server is ready to receive'
- while 1:
- connectionSocket, addr = serverSocket.accept()
- sentence = connectionSocket.recv(1024)
- ans = ''
- flag = False;
- for ch in sentence:
- if(ch == ' ' and flag ==True):break
- if(flag == True):
- ans = ans + ch;
- elif(ch==' '):
- flag = True;
- path = 'file//' + ans
- if(os.path.exists(path)==False):
- connectionSocket.send('404 Not Found')
- else:
- file = open( path,'r')
- while 1:
- data = file.read(1024)
- if not data:break
- connectionSocket.send(data)
- file.close()
- connectionSocket.close()