Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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

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 这条线是什么意思?s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)_Python_Sockets_Oop_Networking - Fatal编程技术网

Python 这条线是什么意思?s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

Python 这条线是什么意思?s=socket.socket(socket.AF_INET,socket.SOCK_STREAM),python,sockets,oop,networking,Python,Sockets,Oop,Networking,这条线是什么意思 s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) 这个语法是什么意思socket.socket()和socket.AF\u INET`? 我们不能只使用AF_INET和Stream作为参数吗 import socket # for socket import sys try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Soc

这条线是什么意思

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
这个语法是什么意思
socket.socket()
和socket.AF\u INET`? 我们不能只使用AF_INET和Stream作为参数吗

import socket # for socket
import sys 

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print "Socket successfully created"
except socket.error as err:
    print "socket creation failed with error %s" %(err)

# default port for socket
port = 80

try:
    host_ip = socket.gethostbyname('www.google.com')
except socket.gaierror:

    # this means could not resolve the host
    print "there was an error resolving the host"
    sys.exit()

# connecting to the server
s.connect((host_ip, port))

print "the socket has successfully connected to google \
on port == %s" %(host_ip)
对象名称驻留在名称空间中—包含名称的空间。模块(例如,
socket
)有自己的名称空间。语法是:

namespace.name

因此,
socket.socket
表示
socket
模块中的
socket
名称(恰好是一个函数)——模块名称排在函数名称的前面。如果省略名称空间,那么它将假定当前名称空间,在一个简单的单文件程序中称为
\uuuuu main\uuuu

我们可以对其进行安排,以便将名称导入到自己的命名空间中,而不需要指定模块名称,这正是您所要求的:

from socket import *
但是,出于几个原因,这是危险的,被称为名称空间污染

一个是,我们无法轻松确定某些东西的来源——您显示的代码很短,不典型

另一个原因是名称空间冲突。如果两个模块碰巧使用了相同的名称,例如
closedown
,该怎么办?最后定义的一个是将要使用的一个-不会有一个屏蔽另一个的警告,因为python是动态设计的

所以我们知道,
socket.socket
来自
socket
模块,而不是来自描述汽车工具或电路的模块。如果需要,我们可以在同一个程序中使用这三个名称空间,但必须首先指定名称空间

不幸的是,您将在模块导入中看到很多
*
,因为人们都很懒惰。你可以在一个小程序中侥幸逃脱,但你会冒风险——随着时间的推移,程序只会变得更大、更复杂,它们永远不会变得更小、更简单

还有其他方法可以使用
import
:您可以限制只导入某些名称,也可以创建别名,但在使用它们之前,您应该了解更多有关编程的信息。它们有自己的用途,但在适当的时候是一个判断决定。

对象名称驻留在名称空间中—一个包含名称的空间。模块(例如,
socket
)有自己的名称空间。语法是:

namespace.name

因此,
socket.socket
表示
socket
模块中的
socket
名称(恰好是一个函数)——模块名称排在函数名称的前面。如果省略名称空间,那么它将假定当前名称空间,在一个简单的单文件程序中称为
\uuuuu main\uuuu

我们可以对其进行安排,以便将名称导入到自己的命名空间中,而不需要指定模块名称,这正是您所要求的:

from socket import *
但是,出于几个原因,这是危险的,被称为名称空间污染

一个是,我们无法轻松确定某些东西的来源——您显示的代码很短,不典型

另一个原因是名称空间冲突。如果两个模块碰巧使用了相同的名称,例如
closedown
,该怎么办?最后定义的一个是将要使用的一个-不会有一个屏蔽另一个的警告,因为python是动态设计的

所以我们知道,
socket.socket
来自
socket
模块,而不是来自描述汽车工具或电路的模块。如果需要,我们可以在同一个程序中使用这三个名称空间,但必须首先指定名称空间

不幸的是,您将在模块导入中看到很多
*
,因为人们都很懒惰。你可以在一个小程序中侥幸逃脱,但你会冒风险——随着时间的推移,程序只会变得更大、更复杂,它们永远不会变得更小、更简单


还有其他方法可以使用
import
:您可以限制只导入某些名称,也可以创建别名,但在使用它们之前,您应该了解更多有关编程的信息。它们有自己的用途,但在适当的时候是一个判断的决定。

许多Python标准库都是围绕底层系统库的薄薄包装。它们揭示了底层操作系统设施的许多特性,您必须熟悉底层系统才能正确理解它们的语义

如果你真的想了解sockets,这里有很多很好的介绍。他们中的大多数人都需要熟悉C语言,这可能会让人分心(但如果你希望花更多的时间阅读和编写代码,那么了解C语言的基础知识可能也是一项很好的时间投资)


通过对底层设施的适当封装,您可以很好地为Python
socket
模块创建一个更具Python风格的替代品。不过,目前尚不清楚它是否会起到任何有用的作用。socket的大多数琐碎用法都是通过少量稍微不透明但足够常见的“复制/粘贴编程”来实现的,大多数读者将大致了解代码中发生了什么;其他人的参与程度很高,他们确实需要完全访问和理解底层功能。

许多Python标准库都是底层系统库的精简包装。它们揭示了底层操作系统设施的许多特性,您必须熟悉底层系统才能正确理解它们的语义

如果你真的想了解sockets,这里有很多很好的介绍。他们中的大多数人都需要熟悉C语言,这可能会让人分心(但如果你希望花更多的时间阅读和编写代码,那么了解C语言的基础知识可能也是一项很好的时间投资)

你本可以