Linux socket 編程中 write 函數使用的注意事項

來源:互聯網
上載者:User

標籤:使用   sp   資料   bs   linux   nbsp   編程   資訊   函數   

   很多人都以為使用write和使用send發送資料是一樣的,確實都可以發送資料,但是有一點需要注意:

   write 函數不能保證發送的資料一次都能發送完 ,可能只發送了一部分(當核心發送緩衝區滿的時候),這點就破壞了資料發送的“原子性”,這個原子操作只的是單個包發送的過程中不會被其他發送操作影響。如果中間被打斷,那麼在同一個 socket 上的其他線程的發送操作就有可能在你間斷後,進入發送,導致最後的包混亂。所以最好還是使用 send 來發送。

   但也不是說 send 不會被打斷,當發送的過程中有資訊到來的時候,send操作還是會被打斷。

Linux socket 編程中 write 函數使用的注意事項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.