什麼是網路?
客戶端和伺服器如何交換數據
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
網路是遠端電腦根據既定規則交換資料的結構。 線上遊戲、網路瀏覽器和聊天程式基本上也是從發送資料和接收回應的過程開始的。
透過地址和連接埠查找程序
IP 位址是用來在網路上尋找電腦的位址。 連接埠號碼標識哪個程式將與電腦通訊。
192.168.0.10:7777
└─ IP 位址 └─ 連接埠
伺服器在特定連接埠上等待請求,客戶端嘗試連接到伺服器的位址和連接埠。 連線後,雙方依照約定的格式交換訊息。
協定是資料交換的規則
僅透過查看發送的字節,您無法判斷這是登入請求還是字元位置。 因此,訊息類型、長度和值的順序都是預先決定的。
[訊息類型][資料長度][實際資料]
[MOVE ][12 ][x, y, z]
這個承諾稱為協議。 如果伺服器和用戶端不使用相同的規則,則無法正確解釋它們。
TCP 和 UDP
TCP 確保資料依序到達並在遺失時重新傳送。 它非常適合注重準確性的任務,例如文件傳輸、登入和聊天。
UDP具有簡單的連接和重傳管理,容易減少延遲。 相反,資料可能會消失或改變順序,因此程序必須確定需要進行哪些可靠性處理。
TCP:優先考慮準確傳送。
UDP:適合優先考慮快速交付和最新狀態。
網路遊戲需要隱藏延遲
網路資料不會立即到達。 使用預測和插值來使客戶端螢幕平滑,重要的決策往往是在伺服器做出最終決策的結構中做出的。
網路程式設計的開始並不複雜的同步。 最好從一個小的 Echo 程式開始,客戶端發送字串,伺服器傳回相同的字串,檢查連接、訊息和錯誤處理。