草庐IT

already-closed

全部标签

c++ - Asio 中新连接出现 "Already Open"错误

我正在使用Asio的非Boost版本,并根据http://think-async.com/Asio/asio-1.11.0/doc/asio/tutorial/tutdaytime3.html中的代码创建了一个TCP服务器。我可以很好地建立与服务器的连接,但只是第一次。如果我断开我的客户端然后尝试再次连接,Asio将“已经打开”错误传递给我的接受处理程序。从代码中可以看出,在接受连接之前,会创建一个tcp_connection类的新实例。我不确定为什么会收到此错误,即使它是一个完全独立的实例,其套接字不应已打开。任何帮助将不胜感激。提前致谢。编辑:这是服务器类:http://paste

c - TCP 连接 : Recreating a socket that has been closed

我正在编写客户端FTP程序,到目前为止,在成功连接后,服务器将以扩展被动模式运行。使用从EPSV命令返回的端口号,我可以像这样创建客户端套接字:voidcreate_data_channel(){if((data_sock=socket(AF_INET,SOCK_STREAM,0))==-1){perror("Cannotcreateclientsocketfordataconnection:(");exit(1);}data_server_addr.sin_family=AF_INET;data_server_addr.sin_port=htons(port);data_server

c++ - 当调用 QTcpSocket::close() 时会发生什么?

QTcpSocket::close()被调用时会发生什么?我知道它最终会关闭连接,但是Tcp套接字的内部缓冲区会发生什么?清零了吗?这就是当我调用close()时QTcpSocket::size()返回0的原因吗?从服务器接收数据后从客户端:qDebug()编辑:根据这个post,关闭套接字会自动刷新所有剩余数据。由于我在客户端从服务器接收到数据后关闭套接字,数据会刷新到哪里?我还没有读过任何数据。 最佳答案 当关闭被调用时,Qt将QAbstractSocket状态更改为ClosingState。如果有数据还没有写入socket,现

python - 错误号 98 : Address already in use - Python Socket

以前有人问过这个问题,但没有一个答案对我有帮助。问题看起来很简单。我在树莓派上运行一个TCP服务器,并尝试从另一台机器连接到它。我有一个自定义类接收器,可将传感器数据通过管道传输到此脚本。当我关闭在另一台机器上运行的程序时(套接字是'shutdown(2)'d,然后是'close()'d),我无法再重新连接到同一个端口。我尝试在两个socket(1180和1181)之间切换,但这没有用。当我通过一个端口连接一次时,它就永远消失了,直到我重新启动TCP服务器。我尝试重新启动脚本(使用executl()),但这并没有解决我的问题。我告诉套接字它应该重新使用地址但无济于事。我能做的是使用更多

C++ : how to close a tcp socket (server) when receiving SIGKILL

如何在死前关闭套接字?我在linux上有一个创建TCP服务器的服务。有时我必须重新启动它并且我希望套接字真正关闭。此刻它挂了。我也知道SIGKILL无法处理。谁能指出我正确的方向? 最佳答案 套接字将被关闭-操作系统将自动执行此操作,请参阅:UsingSO_REUSEADDR-Whathappenstopreviouslyopensocket?与其尝试处理SIGKILL,这不会起作用,不如从一开始就解决问题:使用SO_REUSEADDR套接字选项,它允许您立即重用端口。 关于C++:ho

windows - CLOSE_WAIT 状态问题

我在生产服务器上看到许多处于CLOSE_WAIT状态的连接,几乎没有问题。请指教。我知道windows寄存器有以下参数:TcpTimedWaitDelay在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters根据微软资料(http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2networking/thread/4288d218-fbf9-4489-b869-384a05dea83d/),TIME_WAIT的默认值是4分钟

c - unix中绑定(bind)端口 "Address already in use"TCP套接字编程错误

我浏览了很多帖子和论坛,而且我是套接字编程的新手。我的代码的主要部分类似于BINDERROR:Addressalreadyinuse但后来我更改了我的代码,以便我像这样包含“setsockopt”函数:constchar*port="5555";intopt=1;portno=atoi(port);//parametersforserveraddressserv_addr.sin_family=AF_INET;serv_addr.sin_port=htons(portno);serv_addr.sin_addr.s_addr=INADDR_ANY;//bindthesockettoth

python tcp socket - 为什么sendall消息只在close()之后发送

我正在尝试编写perlTCP服务器/pythonTCP客户端,我现在有这样的代码:importsocketsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server_address=("127.0.0.1",9000)sock.connect(server_address)try:message=unicode('Test')sock.sendall(message)data=sock.recv(1024)printdatafinally:sock.close()而且我注意到,我的TCP服务器(用perl编写)不是在senda

C++ MySQL 连接器无法断开 sql::Connection close() 调用上的 TCP 连接

我在终止使用MYSQLC++Connector1.1.3创建的MYSQL连接时遇到困难sql::Connection*con;/*CreatingConnection*///..../*ExecutingStatements*///..con->close();//ThisshouldterminatetheTCPConnection但即使在调用close()函数后,与MYSQL服务器的TCP连接也不会终止。它只会在应用程序进程终止后断开连接。仔细查看后,我发现了以下内容:1>//checkedclosed()functionofMySQL_ConnectionClassif(!int

java - 如何避免 java.net.BindException : Address already in use

以下运行了1小时然后关闭:publicclassMpextendsJWindowimplementsMouseListener,MouseMotionListener{publicstaticMpj;privateintserverPort=0;privateServerSocketserverSock=null;privateSocketsock=null;publicstaticvoidmain(finalString[]args)throwsIOException,InterruptedException,Exception{j=newMp();j.setVisible(true