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
Python 插座;进口;“不起作用”;从「;做怎么回事?_Python_Sockets_Import - Fatal编程技术网

Python 插座;进口;“不起作用”;从「;做怎么回事?

Python 插座;进口;“不起作用”;从「;做怎么回事?,python,sockets,import,Python,Sockets,Import,我刚刚开始使用python,并尝试使用它来执行一些基本的网络例程。 我有两段代码做同样的事情,一段正常,另一段不正常。使用来自套接字导入的时*不会触发异常代码块。当我使用导入套接字时,我确实触发了异常代码块。我想用第二种方法来编码!有人看到我的代码或我对语言或模块使用的理解有任何问题吗?为什么第二种方法不起作用 以下是工作代码: from socket import * try: connSkt = socket(AF_INET, SOCK_STREAM) except: pr

我刚刚开始使用python,并尝试使用它来执行一些基本的网络例程。 我有两段代码做同样的事情,一段正常,另一段不正常。使用来自套接字导入的
时*
不会触发异常代码块。当我使用导入套接字时,我确实触发了异常代码块。我想用第二种方法来编码!有人看到我的代码或我对语言或模块使用的理解有任何问题吗?为什么第二种方法不起作用

以下是工作代码:

from socket import *

try:
    connSkt = socket(AF_INET, SOCK_STREAM)
except:
    print "[-] Exception occurred!"
import socket

try:
    connSkt = socket.socket(AF_INET, SOCK_STREAM)
except:
    print "[-] Exception occured!"
以下是非工作代码:

from socket import *

try:
    connSkt = socket(AF_INET, SOCK_STREAM)
except:
    print "[-] Exception occurred!"
import socket

try:
    connSkt = socket.socket(AF_INET, SOCK_STREAM)
except:
    print "[-] Exception occured!"

AF_INET
SOCK_STREAM
socket
模块的一部分,您需要为第二个示例指定该模块:

import socket

try:
    connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except Exception:
    print "[-] Exception occurred!"

AF_INET
SOCK_STREAM
socket
模块的一部分,您需要为第二个示例指定该模块:

import socket

try:
    connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except Exception:
    print "[-] Exception occurred!"

正如dano所说:在第二个示例中,您需要使用socket.AF_INET和socket.SOCK_流

import socket
创建名为socket的模块对象,其中包括AF_INET和SOCK_STREAM

from socket import *

将socket中的所有名称(包括AF_INET和SOCK_STREAM)导入当前命名空间。

如dano所说:在第二个示例中,您需要使用socket.AF_INET和socket.SOCK_STREAM

import socket
创建名为socket的模块对象,其中包括AF_INET和SOCK_STREAM

from socket import *

将套接字中的所有名称(包括AF_INET和SOCK_STREAM)导入当前命名空间。

在第二个示例中,您需要使用
socket.AF_INET
socket.SOCK_STREAM
。如果你没有完全接受所有的异常,那么这对你来说可能是显而易见的。不要那样做!成功了。如果你真的想捕获所有异常并将它们转换为输出消息,至少要输出异常本身,这样你就知道发生了什么!例如,
异常除外,如e:print“[-]异常发生:{!r}!”。格式(e)
。然后,您将知道出错的是
namererror(“name'AF\u INET'not defined”)
,这将使调试变得更加容易,而不仅仅是知道出错了。(但在这种情况下,只需删除
尝试
/
例外,并让完整的异常和回溯打印出来;让它工作,然后找出您的日志记录格式,这会简单得多。)永远不要使用单个
例外:
,而是使用
例外:
。将来将使用您的代码示例!在第二个示例中,您需要使用
socket.AF_INET
socket.SOCK_STREAM
。如果你没有完全接受所有的异常,那么这对你来说可能是显而易见的。不要那样做!成功了。如果你真的想捕获所有异常并将它们转换为输出消息,至少要输出异常本身,这样你就知道发生了什么!例如,
异常除外,如e:print“[-]异常发生:{!r}!”。格式(e)
。然后,您将知道出错的是
namererror(“name'AF\u INET'not defined”)
,这将使调试变得更加容易,而不仅仅是知道出错了。(但在这种情况下,只需删除
尝试
/
例外,并让完整的异常和回溯打印出来;让它工作,然后找出您的日志记录格式,这会简单得多。)永远不要使用单个
例外:
,而是使用
例外:
。将来将使用您的代码示例!。。。但是,如果可能的话,应该避免通配符导入。它们通常会导入您不需要或永远不会使用的内容,如果未设置所有内容,则可以导入内部内容,并使linter和调试器更难找到未使用/丢失的符号。。。。但是,如果可能的话,应该避免通配符导入。它们通常会导入您不需要或永远不会使用的东西,如果未设置所有内容,则可以导入内部内容,并使linter和调试器更难找到未使用/丢失的符号。