【问题标题】:socket.error: [Errno 10057] no socket connectionsocket.error: [Errno 10057] 没有套接字连接
【发布时间】:2016-01-19 17:01:43
【问题描述】:

我正在构建一个简单的 HTTP 代理服务器。当我在服务器从代理获取数据后尝试从我的服务器向代理服务器发送响应时,我得到“socket.error: [Errno 10057] no socket connection”在我的服务器上写的是“pro_soc.send(data_web)”

这是我的服务器:

pro_soc = socket.socket()
#connect 
pro_soc.bind(("127.0.0.1", 8001))
# wait for proxy request
pro_soc.listen(1)
print "listening...."
client_soc, client_address= pro_soc.accept()
# receive proxy message
client_url = client_soc.recv(1024)
#send webpage data to proxy
file_web = open(client_url,"r")
data_web = file_web.read()
print data_web
pro_soc.send(data_web)
#close
file_web.close()
client_soc.close()
pro_soc.close()

这是我的代理服务器:

client_soc = socket.socket()
server_soc = socket.socket()
# connect to socket
client_soc.bind(("127.0.0.1", 8000))
# wait for client request
client_soc.listen(1)
print "listening...."
client_soc, client_address= client_soc.accept()
# receive client message
client_url = client_soc.recv(1024)
#send it to server
server_soc.connect(("127.0.0.1", 8001))
server_soc.send(client_url)
web_data = server_soc.recv(1024)
print web_data
new_data = web_data.replace("japan","china")
new_html = open("newHtml.html","w")
new_html.write(new_data)
webbrowser.open_new_tab("newHtml.html")
# close connection and file
client_soc.close()
server_soc.close()
new_html.close()

你能告诉我错误在哪里吗?

谢谢你♥

【问题讨论】:

    标签: python http proxy server


    【解决方案1】:

    小心你的端口。

    您的服务器正在使用一个套接字来侦听和发送数据。 8001

    但是,您的代理服务器正在 8000 上侦听并在 8001 上发送。您的代理服务器将永远不会在端口 8001 上收到通信,因为它没有在侦听。

    【讨论】:

    • 我已将端口更改为 8001 而不是 8000,但现在我得到“socket.error: [Errno 10048] 每个套接字地址(协议/网络地址/端口)通常只允许使用一次” / 我该怎么办?
    猜你喜欢
    • 2015-05-06
    • 2012-07-20
    • 2018-11-07
    • 2015-08-13
    • 2017-05-09
    • 1970-01-01
    • 2013-04-06
    • 2013-02-24
    相关资源
    最近更新 更多