socket "导入"不成功,"从"却可以!这是怎么回事?

1 投票
2 回答
3349 浏览
提问于 2025-04-18 14:08

我刚开始学习Python,想用它来做一些基本的网络操作。我有两段代码,它们的功能是一样的,一段能正常工作,另一段却不行。当我使用from socket import *时,我的异常处理代码没有被触发。而当我用import socket的方式时,异常处理代码却被触发了。我想用第二种方式来写代码!有没有人能帮我看看我的代码或者我对语言和模块的理解有没有问题?为什么第二种方式不工作呢?

这是能正常工作的代码:

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!"

2 个回答

1

就像dano说的:在第二个例子中,你需要使用socket.AF_INET和socket.SOCK_STREAM。

import socket

这段代码创建了一个叫做socket的模块对象,其中包含了AF_INET和SOCK_STREAM。

from socket import *

这段代码把socket模块中的所有名称,包括AF_INET和SOCK_STREAM,导入到当前的命名空间中。

3

AF_INETSOCK_STREAMsocket 模块的一部分,你需要在第二个例子中指定它们,这样才能正常工作:

import socket

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

撰写回答