8. 常見的問題
我可以從哪邊取得那些 header 檔案呢?
在 bind() 回報"Address already in use"(位址已經在使用中)時,我該怎麼辦呢?
我該如何取得系統上已經開啟的 sockets 清單呢?
$ netstat我該如何檢視 routing table(路由表)呢?
如果我只有一台電腦,我該如何執行 client(客戶端)與 server(伺服器)程式呢?我需要網路來寫網路程式嗎?
我該怎麼知道對方已經關閉連線呢?
我該如何實作一個"ping"工具呢?什麼是 ICMP 呢?我可以在哪裡找到更多關於 raw socket 與 SOCK_RAW 的資料呢?
我該如何改變或縮短呼叫 connect() 的逾期時間呢?
我該如何寫 Windows 的網路程式呢?
我該如何在 Solaris/SunOS 上編譯程式呢?在我嘗試編譯時,一直遇到錯誤!
為什麼 select() 跟 signal 合不來呢?
要怎麼樣我才能實作呼叫 recv() 的 timeout 呢?
我該如何在將資料送給 socket 以前將資料加密或壓縮呢?
我該怎麼寫一個 server,可以接受來自 client 的 shell 指令並執行指令呢?
我正在傳送大量資料,可是當我 recv() 時,它一次只收到 536 bytes 或 1460 bytes。可是如果我在我本機上執行,它就會一次就收到全部的資料,這是怎麼回事呢?
我用的是 Windows 系統,而且我沒有 fork() system call 或任何的 struct sigaction 可以用,該怎麼辦呢?
我在防火牆(firewall)後面,我該如何讓防火牆外面的人知道我的 IP 位址,讓他們可以連線到我的電腦呢?
我該怎麼寫 packet sniffer 呢?我要怎麼將我的 Ethernet interface(網路卡)設定為 promiscuous mode(混雜模式)呢?
我該如何為 TCP 或 UDP socket 設定一個自訂的 timeout 值呢?
我要如何辨別哪些 ports 可以使用呢?有沒有"官方"的 port numbers 呢?
Last updated