对于学校作业,我需要填写充当简单代理服务器的示例Python 3应用程序的空白。我只需要使用套接字库。
我的问题在于,我没有被教过如何拉客户的请求的网址,也找不到在线帮助我的信息。到目前为止,这是代码(我包括它们来举例说明我需要编写的Python样式):
from socket import socket, gethostname, AF_INET, SOCK_STREAM
import sys
if len(sys.argv) <= 1:
print ("Usage : 'python ProxyServer.py server_ip'\nserver_ip : It is the IP Address Of Proxy Server")
sys.exit(2)
# Create a server socket, bind it to a port and start listening
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(('localhost', 8888))
tcpSerSock.listen(5)
while 1:
# Start receiving data from the client
print ('Ready to serve...' )
tcpCliSock, addr = tcpSerSock.accept()
print ('Received a connection from:', addr)
message = addr
print (message.value)
# Extract the filename from the given message
filename = message.split()[1].partition("/")[2]
print (filename)
当我将页面排入队列时,我导航至“ localhost:8080 / www.google.com /”。
我的问题是,我怎么能在Python中从排队的URL中以字符串形式在“ www.google.com”中读取?
答案 0 :(得分:0)
这是我找到的答案。
tcpCliSock.recv(4096)
^上面的代码返回一个包含完整请求的字节对象。当转换为字符串并根据空格进行拆分时,请求的“ www.google.com”段位于位置[1]。
在我的头顶上,检索URL看起来像这样:
test = message.split()[1]