2013-11-22 61 views
2

這是一個很寬泛的問題:什麼是文件描述符/連接/套接字/ IP?

如何使文件描述符,連接,套接字,ip都相互關聯?

是文件描述符只是一個文本文件?所以當我連接服務器時,是否意味着服務器和我的電腦基本上創建了文件描述符,並且我們通過寫入文件來進行通信?

爲什麼服務器有文件描述符的限制?當服務器打開太多連接時,它可能會失敗並出現錯誤:打開的文件太多。是否因爲每個連接都會打開一個新的文本文件?

回答

6

IP地址是標識網絡中某臺機器的「編號」。所以你可以說「將這個數據發送到IP x.x.x.x」並且網絡知道哪一個是目標機器。有幾種方法可以爲機器分配IP地址。

連接是兩臺機器之間的概念鏈接。這是概念性的,因爲機器不必直接連接到彼此或任何東西上:它們通過「網絡」鏈接。

套接字是一個編程接口,它允許程序員來管理連接,讓程序員可以:

  • 建立(開放)到另一臺機器
  • 一個新的連接監聽來自其他機器
  • 傳入連接通過connectino通過連接
  • 丟棄(接近)的連接
  • 接收
  • 寫數據
  • 讀數據

文件描述符是一個元素(通常是一個數字),它允許程序員識別數據的「流」:磁盤,套接字,管道,命名管道上的文件......基本上任何你可以讀/寫的字節以順序的方式。它們被稱爲文件描述符,因爲它們最初只識別文件。