[英]c++ Winsock send,recv -how they work
我是網絡編程的新手,我正在嘗試理解發送和recv等功能如何在TCP連接下工作。我知道在客戶端和服務器之間的連接中,例如,當客戶端設法發送時一條消息發送到服務器,消息被分成不同的包,當它到達時,服務器部分檢查包的總和是否與發送前相同,如果沒有,它會將消息發送回客戶端作為批准。如果出現問題,客戶端將重新發送該消息。
我不明白的是,如果你從客戶端發送一條消息,你在服務器上睡10秒鍾,你仍然可以在客戶端做你想做的事情,比如send函數在另一個線程中執行,或者你使用在這10秒內多次發送功能,消息作為該時間內使用的消息的組合到達。
如果有人能解釋一下情況,我將非常感激!
這是由您的操作系統的TCP / IP網絡堆棧實現的。
TCP / IP堆棧......
在您編寫的情況下,客戶端正在填充發送方OS的發送緩沖區和接收方OS的接收緩沖區。 您的客戶端可以發送非阻塞,直到兩個緩沖區都已滿。 然后它將阻塞,直到服務器再次調用recv。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.