Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 如何知道服务器是否正在侦听端口_Sockets - Fatal编程技术网

Sockets 如何知道服务器是否正在侦听端口

Sockets 如何知道服务器是否正在侦听端口,sockets,Sockets,我已经在应用程序的一端创建了一个TCP套接字。假设终点是1。这个插座大约10秒后关闭。现在,我的应用程序的另一端(第2端)可以连接到上面创建的套接字。我正在用python编写这个套接字应用程序,所以假设我的End2正在尝试连接到TCP套接字,但是该套接字不再存在,我的程序会因为一些异常而终止。我不希望这种事发生。就好像在我的第二端有一个while循环。因此,如果连接不可用,它将返回并等待。您是否正确处理了异常 try: s.connect((host,port)) except sock

我已经在应用程序的一端创建了一个TCP套接字。假设终点是1。这个插座大约10秒后关闭。现在,我的应用程序的另一端(第2端)可以连接到上面创建的套接字。我正在用python编写这个套接字应用程序,所以假设我的End2正在尝试连接到TCP套接字,但是该套接字不再存在,我的程序会因为一些异常而终止。我不希望这种事发生。就好像在我的第二端有一个while循环。因此,如果连接不可用,它将返回并等待。

您是否正确处理了异常

try:
    s.connect((host,port))
except socket.error, (value,message):
    if s:
        s.close()
    print "Could not open socket: " + message
    """Code to handle a retry"""

一旦出错。。您可以通过执行绑定重试,然后再次侦听。。你还需要有重试计数,比如说5,然后可能退出

这个问题没有可能的解决办法。您需要处理异常并重试连接。由于在异常处理方面没有什么背景知识,我的后一部分代码是否在异常发生后运行。。文档说明可以捕获4种类型的异常。我认为您的服务器端套接字关闭异常应该被socket.error捕获。检查抛出的errno,然后进行相应的处理。