我如何在Ubuntu 14.04上安装pybonjour(How do I install pybonjour on Ubuntu 14.04)
获取此错误
ImportError: No module named pybonjour
我如何在Ubuntu 14.04上安装pybonjour。
试过
sudo apt-get install pybonjour
和pip install pybonjour
,没有运气。Getting this error
ImportError: No module named pybonjour
How do I install pybonjour on Ubuntu 14.04.
Tried
sudo apt-get install pybonjour
andpip install pybonjour
, no luck.
原文:https://stackoverflow.com/questions/28896572
最满意答案
默认的http.Transport过快地打开和关闭连接。 由于所有连接都是相同的主机:端口组合,因此需要增加
MaxIdleConnsPerHost
以匹配MaxIdleConnsPerHost
的值。 否则,传输将经常关闭额外的连接,只是让它们立即重新打开。您可以在默认传输上全局设置:
http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = numCoroutines
或者在创建自己的运输时
t := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }).DialContext, MaxIdleConnsPerHost: numCoroutines, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, }
类似的问题: 去http.Get,并发,和“由同行重置连接”
The default http.Transport is opening and closing connections too quickly. Since all connections are to the same host:port combination, you need to increase
MaxIdleConnsPerHost
to match your value fornum_coroutines
. Otherwise, the transport will frequently close the extra connections, only to have them reopened immediately.You can set this globally on the default transport:
http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = numCoroutines
Or when creating your own transport
t := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }).DialContext, MaxIdleConnsPerHost: numCoroutines, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, }
Similar question: Go http.Get, concurrency, and "Connection reset by peer"
相关问答
更多-
TCP/IP模型是一个________。[2023-10-02]
a -
提供页面后,HTTP套接字连接仍然在TIME_WAIT中(HTTP socket connection remains in TIME_WAIT well after page is served)[2022-11-24]
为什么会这样? 因为那是它应该做的 。 Linux系统上/ proc / sys / net / ipv4 / tcp_fin_timeout的默认值是60秒(恕我直言,这对于大多数用途来说有点过分)。 您可以通过写入文件来更改它。 Why would this be? Because that's what it's supposed to do. The default value for /proc/sys/net/ipv4/tcp_fin_timeout on a Linux system is 6 ... -
下列中不属于面向对象的编程语言的是?[2022-05-30]
a -
TIME_WAIT每个套接字在内核中消耗一些内存,通常略低于ESTABLISHED套接字,但仍然很重要。 足够大的数量可以排除内核内存,或至少降低性能,因为该内存可以用于其他目的。 TIME_WAIT套接字不持有打开的文件描述符(假设它们已正确关闭),因此您不必担心“打开的文件太多”错误。 套接字还绑定了特定的src / dst IP地址和端口,因此它不能在TIME_WAIT间隔的持续时间内重复使用。 (这是TIME_WAIT状态的预期目的。)绑定端口通常不是问题,除非您需要重新连接相同的端口对。 最常见的 ...
-
设置TIME_WAIT TCP(Setting TIME_WAIT TCP)[2023-11-25]
TCP连接由元组(源IP,源端口,目标IP,目标端口)指定。 在会话关闭后有一个TIME_WAIT状态的原因是因为在您到达您的路上可能还存在网络中的实时数据包(或从您可能会请求某种响应)。 如果您要重新创建相同的元组,并且其中一个数据包显示,则将被视为连接的有效数据包(并且可能会由于排序而导致错误)。 因此,TIME_WAIT时间通常设置为包最大年龄的两倍。 该值是网络丢弃它们之前允许数据包到达的最大年龄。 这样可以保证在允许使用同一个元组创建连接之前,属于该元组的先前化身的所有数据包都将被停止。 这通常决 ... -
在这种情况下,无需维护状态信息。 RFC 4960定义了一种对未知(突然出现)数据包的默认处理。 假设您在关联中有两个方面:A侧和B侧.v1 / v2是这些方使用的验证标签。 A侧启动关机。 ` A B Shutdown(v1) --------------------> Shutdown_ack(v2) <-------------------- Shutdown_complete(v1) ------------------ ...
-
go client程序在TIME_WAIT状态下生成很多套接字(Go client program generates a lot a sockets in TIME_WAIT state)[2023-08-23]
默认的http.Transport过快地打开和关闭连接。 由于所有连接都是相同的主机:端口组合,因此需要增加MaxIdleConnsPerHost以匹配MaxIdleConnsPerHost的值。 否则,传输将经常关闭额外的连接,只是让它们立即重新打开。 您可以在默认传输上全局设置: http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = numCoroutines 或者在创建自己的运输时 t := &http.Transport{ ... -
“TIME_WAIT”是TCP连接在关闭(FIN / FIN接收)后的可配置时间内保持的状态。 以这种方式,一个连接的可能“延迟”分组不能与重用相同端口的后一个连接混合。 在高流量测试中,拥有很多它们是正常的,但是在测试完成几分钟后它们应该消失。 "TIME_WAIT" is the state that a TCP connection mantains during a configurable amount of time after closed (FIN/FIN reception). In th ...
-
套接字选项SO_LINGER确实阻止套接字进入TIME_WAIT。 但TIME_WAIT有一个原因:它应该保护您免受来自旧连接的延迟数据包的影响。 因此,TIME_WAIT的默认持续时间是网络往返的两倍。 因此,在TIME_WAIT中找到一些较旧的连接是正常的。 提供一些上下文:在服务器端,使用侦听套接字,有SO_REUSEADDR套接字选项。 它允许侦听套接字在TIME_WAIT结束之前成功进行绑定。 对于服务器进程,它总是应该监听同一个端口(想想:端口80,443处的webserver),这是必须的。 ...
-
如果您遵循TCP状态机图,您将看到如果套接字启动发送FIN,则套接字必须转换到TIME-WAIT状态。 使用shutdown(sockTX, 2)而不等待客户端的FIN就是这样。 如果您希望服务器等待客户端的FIN,则先阻止recv()等待0返回值。 然后,你可以close() 。 请注意,除非您以某种方式复制套接字(使用dup*()或使用fork()调用),否则如果紧跟一个close() ,则无需调用shutdown() close() 。 您可以只调用close() (如果套接字已被复制,FIN将仅在最 ...