草庐IT

sock_listen

全部标签

ruby-on-rails - 在 RoR 中,如何从 "Failed to open TCP connection ... (general SOCKS server failure)"错误中恢复?

我正在使用Rails4.2.7。目前我正在像这样通过SOCKS代理请求网页begin...res1=Net::HTTP.SOCKSProxy('127.0.0.1',50001).start(uri.host,uri.port)do|http|puts"launching#{uri}"resp=http.get(uri)status=resp.codecontent=resp.bodycontent_type=resp['content-type']content_encoding=resp['content-encoding']end...rescueOpenURI::HTTPErr

c - listen() 积压上限

尽管关于这个话题说了很多,但我还是很困惑。我试验了一个能够处理适当负载斜坡的巨型Linux服务器,大概每秒有数千个连接。现在,如果我检查默认的listen()队列:#cat/proc/sys/net/core/somaxconn128这根本不是实际的队列大小。我怀疑这可能是遗留问题,实际大小如下所示:#cat/proc/sys/net/ipv4/tcp_max_syn_backlog2048但是,mantcp说后者是等待来自客户端的ACK的连接,这与尚未被接受的连接总数不同,后者是listen()积压。所以我的问题是如何增加listen()backlog,以及如何获取/设置它的上限(就

networking - HTTP(s) 反向代理、TCP 代理、Socks5 代理之间的区别?

以下是我对这些的理解,我发现其中几乎没有差距;特别是何时何地使用HTTP(s)代理:可用作TLS终止代理可用于修改HTTPheader可用作DMZ前的负载均衡器或公共(public)IP提供者,以屏蔽后端服务器TCP代理可作为TCP连接的反向代理,不仅支持HTTP,还支持FTP等其他应用层协议(protocol)我的问题如果我只接受HTTP网络流量,在哪些用例中我们应该使用TCP代理而不是HTTP代理这种理解有联系吗?TCP客户端可以连接到TCP代理上的单个套接字,TCP代理可以打开到后端服务器的多个连接,类似于负载平衡器SOCKS5代理来自维基百科SocketSecure(SOCKS

language-agnostic - 更多 TCP 和 POSIX 套接字 listen() 和 accept() 语义

情况:服务器调用listen()(但不是accept()!)。客户端向服务器发送SYN。服务器获取SYN,然后将SYN/ACK发送回客户端。但是,客户端现在挂断/死亡,因此它永远不会向服务器发回ACK。连接处于SYN_SENT状态。现在另一个客户端发送一个SYN,从服务器得到一个SYN/ACK,然后发回一个ACK​​。此连接现在处于ESTABLISHED状态。现在服务器终于调用了accept()。怎么了?accept()是否在第一个错误连接上阻塞,直到发生某种超时?它是否首先检查队列中是否存在任何已建立的连接并返回这些连接? 最佳答案

networking - 为什么 SOCKS5 需要通过 UDP 中继 UDP?

SOCKS5协议(protocol),由RFC1928描述,提供对UDP的支持。总而言之,希望通过SOCKS5服务器中继UDP数据包的客户端至少必须:打开到SOCKS5服务器的TCP连接;发送一个UDPASSOCIATE请求(cfsection4);从服务器接收地址和端口,它必须发送要中继的UDP数据包;将数据报(UDP)发送到该地址,用一些header封装(cfsection7)。以下是一些相关的引述,来自section6:AUDPassociationterminateswhentheTCPconnectionthattheUDPASSOCIATErequestarrivedont

networking - shutdown(sock, SHUT_RD) 与 TCP 的行为

当使用TCP套接字时,有什么作用shutdown(sock,SHUT_RD);实际上呢?它只是让所有recv()调用返回一个错误代码吗?如果是,是哪个错误代码?它会导致底层TCP连接发送任何数据包吗?另一方此时发送的任何数据会发生什么情况-它是否保留,并且连接的窗口大小一直缩小直到它变为0,或者它只是被丢弃,窗口大小不缩小? 最佳答案 关闭套接字的读取端将导致任何阻塞的recv(或类似)调用返回0(表示正常关闭)。我不知道当前在IP堆栈上传输的数据会发生什么情况。它肯定会忽略来自另一端的传输中的数据。它根本不会影响对该套接字的写入。

c - 套接字编程 - listen() 和 accept() 有什么区别?

我一直在阅读thistutorial了解套接字编程。似乎listen()和accept()系统调用都做同样的事情,即阻塞并等待客户端连接到使用创建的套接字socket()系统调用。为什么为此需要两个单独的步骤?为什么不只使用一个系统调用?顺便说一句,我搜索了这个问题并找到了类似的问题,但没有一个答案令人满意。例如,其中一个说accept()创建套接字,这是没有意义的,因为我知道套接字是由socket()创建的。 最佳答案 listen()函数基本上在内部套接字结构中设置一个标志,将套接字标记为被动监听套接字,您可以在该套接字上调用a

swift - swift 中 "event listeners"的想法如何分为 Action 和协议(protocol)?

我的问题作为一名正在学习Swift的新程序员。我想知道为什么在事件监听器的实现方式之间似乎存在任意划分。在一些教程中,指出您可以简单地在Storyboard上的View元素和ViewController之间拖动以创建Action(事件监听器)。@IBActionfuncclickButtonListener(_sender:UIButton){print("helloworld")}但在后面的教程中,我注意到某些类似事件监听器的功能也以协议(protocol)的形式实现classViewController:UIViewController,UIScrollViewDelegate{f

java - RecyclerView Item Click Listener 的正确方式

我使用RecyclerView适配器在Activity中显示数据,我想在Activity中实现onClickListener,目前,我正在设置onClickListener内部适配器像往常一样工作正常。publicvoidonBindViewHolder(MyHolderholder,finalintposition){finalListdatadata=listdata.get(position);holder.vname.setText(data.getName());holder.vname.setOnClickListener(newView.OnClickListener()

java远程调试Tomcat应用: Why does the JVM not listen?

我想远程调试在Tomcat7中运行的应用程序。Tomcat在Win2008服务器上作为服务运行。我在Tomcat的Java配置面板中的Java选项中添加了以下内容:-Xdebug-Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n并为此端口在我的工作站和服务器上打开防火墙。但是,当我尝试在我的工作站上从IntelliJ9进行调试时,我收到一条错误消息Unabletoopendebuggerport:java.net.ConnectException"Connectiontimedout:connect"。jvm是标准