HTTP是无状态连接。我正在制作“ HTTP Server”(我是编程新手)。
我想做的是使用POST方法在浏览器和基于python的http服务器之间交换信息。为了使其正常工作,我必须关闭套接字并再次打开它(由于HTTP规范,我知道必须完全关闭连接,然后才能使用GET或POST方法建立与服务器的新连接,再次,我打算发送大文件仅通过POST,因为GET的功能非常有限)
有一种机制可以防止我使用循环来关闭/打开套接字。我不确定它是否属于Unix套接字或Python规范。可能是前一种情况。
如果我设置socket.close()/ socket.receive()循环-我收到错误消息: OSError:[Errno 98]地址已在使用中 我该如何解决困境。 Apache完全没有问题(我了解它在C或C ++中的问题),但是它仍然可能在Unix上使用相同的套接字库。(AFAIK python套接字是C或C ++库的包装器)
我不喜欢http.server的概念,因为它不允许发布没有“ CGI”的帖子,我认为我不需要。在我看来,它的记录也很糟糕。
尝试阅读http.server文档。 试图重新绑定POST方法的端口号,事实证明-不可能。 完成了几个小时的谷歌搜索。
import folium
from folium import plugins
m = folium.Map(
location=[35.68159659061569, 139.76451516151428],
zoom_start=16
)
# Lon, Lat order.
lines = [
{
'coordinates': [
[139.76451516151428, 35.68159659061569],
[139.75964426994324, 35.682590062684206],
],
'dates': [
'2017-06-02T00:00:00',
'2017-06-02T00:10:00'
],
'color': 'red'
},
{
'coordinates': [
[139.75964426994324, 35.682590062684206],
[139.7575843334198, 35.679505030038506],
],
'dates': [
'2017-06-02T00:10:00',
'2017-06-02T00:20:00'
],
'color': 'blue'
},
{
'coordinates': [
[139.7575843334198, 35.679505030038506],
[139.76337790489197, 35.678040905014065],
],
'dates': [
'2017-06-02T00:20:00',
'2017-06-02T00:30:00'
],
'color': 'green',
'weight': 15,
},
{
'coordinates': [
[139.76337790489197, 35.678040905014065],
[139.76451516151428, 35.68159659061569],
],
'dates': [
'2017-06-02T00:30:00',
'2017-06-02T00:40:00'
],
'color': '#FFFFFF',
},
]
features = [
{
'type': 'Feature',
'geometry': {
'type': 'LineString',
'coordinates': line['coordinates'],
},
'properties': {
'times': line['dates'],
'style': {
'color': line['color'],
'weight': line['weight'] if 'weight' in line else 5
}
}
}
for line in lines
]
plugins.TimestampedGeoJson({
'type': 'FeatureCollection',
'features': features,
}, period='PT1M', add_last_point=True).add_to(m)
display(m)
需要使'socket.close()'循环不会产生错误“ OSError:[Errno 98]地址已在使用中”。