Changes between Version 15 and Version 16 of wade/linuxProgramming


Ignore:
Timestamp:
Jan 20, 2009, 2:50:27 PM (15 years ago)
Author:
wade
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wade/linuxProgramming

    v15 v16  
    3333   * man socket
    3434   * socket 可以視為管線 (pipe) 概念的延伸,只是它不止可以在本機電腦,還可以透過網路來傳輸資料。它與管線最大的不同在於它將程序區分為 server 與 client,可以進行一對一或多對一的資訊傳遞服務。
    35    * socket 會在 linux 上產生一個檔案名稱,通常存在 /tmp 中,檔案名稱也就是服務的辨識子埠號 (port #),負責將連接請求繞到正確的伺服器處理程序。[wiki:wade/tcp_port_list]
     35   * socket() 會在 linux 上產生一個檔案名稱,通常存在 /tmp 中,檔案名稱也就是服務的辨識子埠號 (port #),負責將連接請求繞到正確的伺服器處理程序。[wiki:wade/tcp_port_list]
    36362. blind:
    37    * socket 命名必須透過 blind 這個 system call 。
     37   * socket 命名必須透過 blind() 這個 system call 。而 server 就在這具名的 socket 上等待 client 的連結請求。
     383. listen:
     39   * listen() 這個 system call 是用來產生一個 queue ,接應連接請求。
     404. accept:
     41   * accept() 這個 system call 是讓 server 真正的接受連接請求,當 server 呼叫 accept() 時,會產生一個未具名 socket ,具此不具名的 socket 只用在與 client 的連接上,原本具名的 socket 則繼續用來等待其它客戶端的連結請求,並將連結請求存入 queue 中。
     425. connect:
     43   * client 利用 socket() 產生一個未具名的 socket ,再呼叫 connect() 連接指定 server 具名的 socket 位址。成功後可以使用檔案描述子 (file descriptor) 的方式進行資料雙向溝通。
     44
    3845== File Descriptors ==
    3946可以想成他只是一個 index ,負責檔案的開啟與關閉,是一個 C type int。