当我在python中编程时,我相信我使用套接字与传输层进行了接口。如果python是由人类编写的,那么他们必须使用一个比套接字“低”的接口来为我们提供套接字的接口。我假设防火墙(也是由人类编写的)以同样的方式使用底层的接口,那么在编程方面是否有一种方法可以访问这些较低的层呢?
发布于 2014-04-29 16:35:42
语言使用系统调用与下层通信。
在解释语言中,这意味着脚本调用“内置”函数,然后调用解释器外部的代码(然后调用它自己的系统调用)。
在编译语言中,代码向软件中断发出信号,该中断使用预定义的协议向操作系统发出信号,表示它需要从外部获取一些东西。
C标准主要是这些系统调用的方便函数和包装器,因此程序员不需要记住如何向每个操作系统发送信号。
发布于 2014-05-30 00:30:42
为了给出一些细节,下面是Python对socket()调用的实现。也就是说,当您在Python中执行x=socket.socket()时,将调用以下代码,这将为您初始化一个_socketobject对象。它表明,在CPython中,它最终调用了好的老C socket()函数。
http://hg.python.org/cpython/file/57130574d1e8/Modules/socketmodule.c#l3995
https://softwareengineering.stackexchange.com/questions/237407
复制相似问题