草庐IT

close_wait

全部标签

linux - 为什么epoll_wait(),在5s~10s后返回,TCP连接超时

我创建了一个非阻塞套接字,然后使用epoll来管理套接字。我没有在epoll_wait上设置超时。但是我发现epoll在5s到10s内返回,然后我检查SO_ERROR上的getsockopt,发现连接超时。为什么这么短的时间就超时了?我尝试使用工具来限制TCP包。场景是这样的:当我的客户端发送一个SYN以连接到服务器时。但服务器无法在5到10秒内发回ACK。然后epoll_wait返回。并检查SO_ERROR。我得到一个EIMTEDOUT。我就是不明白为什么超时时间这么短,5s到10s。是我客户端的问题还是epoll的问题? 最佳答案

c# - tcp 服务器 : How to send something and close the TCP connection afterwards

我正在使用在我的C#应用程序中给出的tcpServer:-http://www.codeproject.com/Articles/488668/Csharp-TCP-Server它有一个TcpServer类,可以打开一个端口并开始监听它。我通过TcpServer类提供的OnDataAvailable事件处理程序接收数据。问题是,客户端期望并依赖于tcp服务器关闭连接。在关闭连接之前,(有条件地)我想将一些数据发送回客户端。这是我为实现相同目标而编写的内容。staticvoidmyServer_OnDataAvailable(TcpServerConnectionconnection){

ubuntu - Websocket 连接卡在 FIN_WAIT1 FIN_WAIT2 状态

我正在尝试拥有一个服务器,多个客户端需要通过该服务器打开一个websocket并发送数据。但是看起来很多客户端无法建立连接..在服务器机器上,当我执行lsof或netstat-an时,我看到很多连接显示在状态FIN_WAIT1和FIN_WAIT2除了处于ESTABLISHED状态的连接。截至目前,打开文件的ulimit为1024。卡在这两种状态的连接会被计入打开文件列表吗?如果是这样的话,1024的限制很快就会用完。/proc/sys/net/ipv4/tcp_orphan_retries是0,好像相当于8https://serverfault.com/questions/274212

c++ - 在 linux 中调用 socket.close 后 socket.read_some 需要很长时间才能返回

我将Boost.Asio用作简单的套接字库。当我打开一个套接字时,我创建了一个线程,该线程不断读取该套接字,并在套接字关闭或发生其他一些错误时返回。while((read=socket->read_some(buf,ec))!=0){//dealwithbytesread}此代码在Windows和Mac上运行良好。然而,对于Linux,当从主线程关闭套接字时,socket::read_some需要很长时间才能返回-我发现它超过2分钟。我可以做些什么来改进它吗? 最佳答案 如果你愿意cancel-ability,使用异步套接字。不要使

python 套接字 : make sure that TCP packets are send before closing connection

我正在使用通过TCP控制的中继。据我了解,以下代码应该有效:s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.0.200',17494))s.send(chr(101))s.close()但是,我注意到套接字在实际发送包之前关闭了,并且中继没有做任何事情。作为肮脏的解决方案,我现在在关闭连接之前放置了一个sleep语句并且它可以正常工作。s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.0.200',1749

apache - cURL 卡在 : "no chunk, no close, no size. Assume close to signal end"

当使用此命令将上传流式传输到Apache/PHP服务器时curl-XPOST\-i--data-binary@customfile.app\-H"Transfer-Encoding:chunked"\-H"Content-Type:application/app"\-H"X-CustomHeader1:customvalue1"\-H"X-CustomHeader2:customvalue2"\-H"X-CustomHeader3:customvalue3"\-H"X-CustomHeader4:customvalue4"\-H"X-CustomHeader5:customvalue5

java.net.SocketException : socket closed TCP Client Server Communication 异常

这个问题在这里已经有了答案:Officialreasonsfor"Softwarecausedconnectionabort:socketwriteerror"(14个答案)关闭3年前。我正在通过TCP创建一个java客户端/服务器应用程序,我们有两个套接字:一个用于交换消息。两个用于文件传输。我在服务器中创建了两个ServerSockets以创建套接字一和二通过接受ServerSockets。首先客户端通过第一个Socket发送一些字节这样它就可以告诉服务器它需要哪个文件。然后Server通过第二个socket将文件发送给client。客户端收到文件后,尝试向服务器发送回传输完成消息

c# - 服务器套接字在 Close_Wait 中挂起

场景如下:我正在从我的C#服务器应用程序向客户端发送大量数据。突然数据流停止,客户端没有数据更新,端口被阻塞。发生这种情况时,服务器端的症状是Close_Wait在该端口(netstat)操作会在日志中阻塞(错误代码:135)。无法从客户端建立新连接。Telnet无法访问该端口目前,每当出现问题时,我们都会重新启动服务器。显然这不是解决方案。有人可以为WindowsServer2008中卡在Close_Wait中的服务器套接字提供解决方案吗?对此场景的任何建议将不胜感激。提前致谢。 最佳答案 CLOSE_WAIT表示对端已关闭连接,

java - 使用 java 客户端/服务器重现 tcp CLOSE_WAIT 状态

有没有一种简单的方法可以用java程序重现tcpCLOSE_WAIT状态?我有一个遗留的Java应用程序有这个问题,我希望能够重现它以便我可以测试我的修复。谢谢 最佳答案 当另一端关闭连接而这一端没有关闭时,连接处于CLOSE_WAIT状态。很容易重现://Client.java(willsleepinCLOSE_WAIT)importjava.io.*;importjava.net.*;publicclassClient{publicstaticvoidmain(String[]args)throwsException{Socke

tcp - 是什么导致打开这么多 TIME_WAIT 连接?

因此,我在一台服务器上有应用程序A,它每秒向另一台服务器上的应用程序B发送710条HTTPPOST消息,该服务器正在监听单个端口。连接不是保持事件的;他们关门了。几分钟后,应用程序A报告它无法打开到应用程序B的新连接。我在两台机器上连续运行netstat,发现每台机器上都打开了大量TIME_WAIT连接。几乎所有显示的连接都在TIME_WAIT中。从在线阅读来看,这似乎是在每一方关闭连接后30秒(在我们的机器上为30秒,根据/proc/sys/net/ipv4/tcp_fin_timeout值)的状态。我在每台机器上运行一个脚本,该脚本一直在运行:netstat-na|grep5774