在输入此问题的标题时,建议我经历几个意图相似的问题,但这些问题特定于与ios / android / windows app开发有关的代码,而我想了解这些代码的原理在操作系统方面。
因此,假设我有一部手机,其中有两个聊天应用程序A和B需要网络连接。因此,当我的电话连接到任何网络时,两个应用程序A和B会通知我在这些应用程序中收到的消息。
我想知道的是应用程序如何知道现在可以使用Internet连接的。
我试图对此提出不同意见,以下是我的思路:
1)应用程序会定期以短时间间隔扫描输入字节。就像它将在特定软件端口上寻找传入的字节,并从字节结构中尝试找出它是否属于它。 (以Unix风格,这可能被建模为从某些设备文件(例如/ dev / net)读取)。 为了证明这一想法,我提出了不确定的顺序,即使用手机中的应用程序从不同的互联网接收通知。 因此,这取决于打开移动数据的确切时间以及何时启动哪个应用程序的扫描。下一条通知可能来自计划在下一次扫描的应用程序
2)。响应Internet连接,将生成一个中断信号,并且与该中断相对应的例程将通知这些应用程序中的每个。然后,这些应用程序将连接到其服务器,以查找是否有任何新消息或通知。 但是我不确定操作系统如何知道哪些应用程序将需要互联网服务。 为了证明这一点,我可以说设备的ip地址可能会更改,因为这些应用程序必须连接到其服务器以通知当前IP和端口。
那么在OS级别上,当互联网可用时,应用程序知道了什么?如果是第二种方式,那么操作系统如何知道哪个应用将需要互联网连接?