标签: networking

如何知道urllib.urlretrieve是否成功?

urllib.urlretrieve即使远程http服务器上不存在该文件,它也会以静默方式返回,它只是将html页面保存到指定文件中.例如:

urllib.urlretrieve('http://google.com/abc.jpg', 'abc.jpg')
Run Code Online (Sandbox Code Playgroud)

只是默默地返回,即使google.com服务器上不存在abc.jpg,生成abc.jpg的也不是有效的jpg文件,它实际上是一个html页面.我想返回的头文件(一个httplib.HTTPMessage实例)可以用来实际判断检索是否成功,但我找不到任何文档httplib.HTTPMessage.

任何人都可以提供有关此问题的一些信息吗?

python networking urllib

53
推荐指数
3
解决办法
6万
查看次数

用于查看响应标头的工具

查看针对特定URL的请求的HTTP响应标头的最佳方法是什么?Telnet还是还有其他一些非常好的命令或工具?

browser networking http http-headers

52
推荐指数
8
解决办法
9万
查看次数

java InetAddress.getLocalHost(); 返回127.0.0.1 ...如何获得REAL IP?

我正在写一个简单的网络应用程序......我需要知道我的机器在网络上的真实IP,如192.168.1.3.getLocalHost返回127.0.0.1(在Linux上,dunno,如果它在Windows上是相同的)怎么做?

java networking

52
推荐指数
6
解决办法
8万
查看次数

tcp_tw_reuse vs tcp_tw_recycle:使用哪个(或两者)?

我有一个使用大量连接的网站和应用程序.它通常有大约3,000个静态打开的连接,并且可以在几秒钟的时间内接收5,000到50,000次连接尝试.

由于TIME_WAIT状态套接字,我遇到了耗尽本地端口以打开新连接的问题.即使将tcp_fin_timeout设置为较低的值(1-5),这似乎只会导致过多的开销/减速,并且它仍然偶尔会无法打开新的套接字.

我已经查看了tcp_tw_reuse和tcp_tw_recycle,但我不确定这些中哪一个是首选,或者如果同时使用这两个选项.

linux networking tcp

52
推荐指数
2
解决办法
8万
查看次数

linux中的DNS缓存

我对DNS缓存感到困惑.我正在编写一个小型转发代理服务器,并希望在Linux系统上使用OS DNS缓存.

如果我理解正确,那么在浏览器级别就有DNS缓存.然后在操作系统级别有DNS缓存(Windows有它.我不确定Linux发行版是否默认拥有它).

那么,browser/proxy_server如何使用OS DNS缓存?我试图找到我是否可以依靠Linux进行DNS缓存,而不是在我的代理中自己做.

谢谢

linux dns networking operating-system

52
推荐指数
4
解决办法
11万
查看次数

请求之前的HTTP响应

我的问题可能听起来很愚蠢,但我只是想确定一下:

  • 是否可以在请求该资源之前发送HTTP响应?

比如说你有一个HTML页面index.html,只显示一个名为的图片img.jpg.现在,如果您的服务器知道访问者每次都会请求HTML文件然后请求jpg图像:

服务器是否可以在HTML文件之后发送图像以节省时间?

我知道HTTP是一种同步协议,所以理论上它不应该工作,但我只是想让某人确认(或不是).

networking tcp comet http

51
推荐指数
2
解决办法
3886
查看次数

要求在镀铬中偶尔停滞很长时间

Ajax请求偶尔会在chrome中停滞很长时间.

如果有人能帮助我的话,我终于设法复制了它并保存了发布在这里所需的所有相关数据.

Chrome开发工具的时间线显示停止了42.62秒的请求,如以下屏幕截图所示: 在此输入图像描述

chrome://net-internals/#events(对于事件日志,请到最后)页面我发现最多的时间是由两个事件花费:

  • + HTTP_TRANSACTION_READ_HEADERS [dt = 21301]
  • + HTTP_TRANSACTION_READ_HEADERS [dt = 21304]

都搞定了ERR_CONNECTION_RESET.

在此输入图像描述

我认为错误是请求停滞这么久的原因.

任何人都可以解释错误?

以下是请求的事件日志,我还将完整事件导出为json,您可以从此处获取,然后在Chrome chrome://net-internals/#events页面中恢复.请注意请求网址是内部的,因此可能无法从公共网络访问:

193486: URL_REQUEST
http://qa.tieba.baidu.com/release/getReleaseHistory?projectId=fum1.0.593
Start Time: 2015-01-02 17:51:05.323

t=    1 [st=    0] +REQUEST_ALIVE  [dt=42741]
t=    1 [st=    0]    URL_REQUEST_DELEGATE  [dt=0]
t=    1 [st=    0]   +URL_REQUEST_START_JOB  [dt=42740]
                      --> load_flags = 339804160 (BYPASS_DATA_REDUCTION_PROXY | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VERIFY_EV_CERT)
                      --> method = "GET"
                      --> priority = "LOW"
                      --> url = "http://qa.tieba.baidu.com/release/getReleaseHistory?projectId=fum1.0.593"
t=    2 [st=    1]      URL_REQUEST_DELEGATE  [dt=0] …
Run Code Online (Sandbox Code Playgroud)

javascript ajax networking google-chrome

51
推荐指数
2
解决办法
5万
查看次数

监视tcpdump中的多个端口

我试图找到一种方法来使用tcpdump读取多个端口.假设我有两个端口,p1和p2,我想同时读取通过两个端口的流量.有什么方法可以使用tcpdump来完成它还是我必须使用其他一些工具?

基本上我正在运行一个在某个端口上运行的代理服务器.我想读取通过此端口的流量以及通过端口80(HTTP)的流量.

networking tcpdump

49
推荐指数
3
解决办法
8万
查看次数

获取本地计算机的IP地址

在C++中,获取本地计算机的IP地址和子网掩码的最简单方法是什么?

我希望能够在本地网络中检测本地计算机的IP地址.在我的特定情况下,我有一个子网掩码为255.255.255.0的网络,我的计算机的IP地址是192.168.0.5.我需要以编程方式获取这两个值,以便向我的网络发送广播消息(对于我的特定情况,格式为192.168.0.255)

编辑:许多答案没有给出我预期的结果,因为我有两个不同的网络IP.Torial的代码完成了这个伎俩(它给了我两个IP地址).谢谢.

编辑2:感谢Brian R. Bondy提供有关子网掩码的信息.

c++ sockets networking

48
推荐指数
4
解决办法
18万
查看次数

Docker端口未公开

我在Docker中设置了一个简单的节点服务器.

Dockerfile

FROM node:latest
RUN apt-get -y update
ADD example.js .
EXPOSE 1337   
CMD node example.js
Run Code Online (Sandbox Code Playgroud)

example.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n'+new Date);
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)

现在构建图像

$ docker build -t node_server .
Run Code Online (Sandbox Code Playgroud)

现在在容器中运行

$ docker run -p 1337:1337 -d node_server  
$ 5909e87302ab7520884060437e19ef543ffafc568419c04630abffe6ff731f70
Run Code Online (Sandbox Code Playgroud)

验证容器是否正在运行并且端口已映射:

$ docker ps  

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
5909e87302ab        node_server         "/bin/sh -c 'node exa"   7 seconds ago       Up 6 seconds        0.0.0.0:1337->1337/tcp   grave_goldberg …
Run Code Online (Sandbox Code Playgroud)

port networking docker

48
推荐指数
2
解决办法
4万
查看次数